From f0c9b2beca347706033af8bfaa2fea493dfdf5b0 Mon Sep 17 00:00:00 2001 From: Daniel Herrero Date: Tue, 19 Dec 2017 11:05:07 +0100 Subject: [PATCH 01/21] new module articles, structure --- client/articles/index.js | 1 + client/articles/routes.json | 21 ++++++++++ client/articles/src/articles.js | 3 ++ client/articles/src/index/index.html | 0 client/articles/src/index/index.js | 15 ++++++++ client/articles/src/locale/es.json | 3 ++ client/articles/src/module.js | 5 +++ client/modules.json | 3 +- client/salix/src/spliting.js | 11 ++++++ .../nginx/static/images/icon_articles.svg | 38 +++++++++++++++++++ 10 files changed, 99 insertions(+), 1 deletion(-) create mode 100644 client/articles/index.js create mode 100644 client/articles/routes.json create mode 100644 client/articles/src/articles.js create mode 100644 client/articles/src/index/index.html create mode 100644 client/articles/src/index/index.js create mode 100644 client/articles/src/locale/es.json create mode 100644 client/articles/src/module.js create mode 100644 services/nginx/static/images/icon_articles.svg diff --git a/client/articles/index.js b/client/articles/index.js new file mode 100644 index 000000000..5e4d1e64b --- /dev/null +++ b/client/articles/index.js @@ -0,0 +1 @@ +export * from './src/articles'; diff --git a/client/articles/routes.json b/client/articles/routes.json new file mode 100644 index 000000000..af8c49149 --- /dev/null +++ b/client/articles/routes.json @@ -0,0 +1,21 @@ +{ + "module": "articles", + "name": "Articles", + "icon": "/static/images/icon_articles.svg", + "routes": [ + { + "state": "articles", + "abstract": true, + "acl": ["employee"] + }, + { + "url": "/articles", + "state": "articles.index", + "component": "vn-articles-index" + }, { + "url": "/create", + "state": "articles.create", + "component": "vn-client-create" + } + ] +} \ No newline at end of file diff --git a/client/articles/src/articles.js b/client/articles/src/articles.js new file mode 100644 index 000000000..ad5e0bb9d --- /dev/null +++ b/client/articles/src/articles.js @@ -0,0 +1,3 @@ +export * from './module'; + +import './index/index'; diff --git a/client/articles/src/index/index.html b/client/articles/src/index/index.html new file mode 100644 index 000000000..e69de29bb diff --git a/client/articles/src/index/index.js b/client/articles/src/index/index.js new file mode 100644 index 000000000..d20d6b005 --- /dev/null +++ b/client/articles/src/index/index.js @@ -0,0 +1,15 @@ +import ngModule from '../module'; + +export default class Controller { + constructor() { + this.model = {}; + } + search(index) { + index.accept(); + } +} + +ngModule.component('vnArticlesIndex', { + template: require('./index.html'), + controller: Controller +}); diff --git a/client/articles/src/locale/es.json b/client/articles/src/locale/es.json new file mode 100644 index 000000000..947465dcc --- /dev/null +++ b/client/articles/src/locale/es.json @@ -0,0 +1,3 @@ +{ + "Articles": "Artículos" +} \ No newline at end of file diff --git a/client/articles/src/module.js b/client/articles/src/module.js new file mode 100644 index 000000000..be4d80d9c --- /dev/null +++ b/client/articles/src/module.js @@ -0,0 +1,5 @@ +import {ng} from 'vendor'; +import 'core'; + +const ngModule = ng.module('articles', ['vnCore']); +export default ngModule; diff --git a/client/modules.json b/client/modules.json index 62c5e11a1..02af7e678 100644 --- a/client/modules.json +++ b/client/modules.json @@ -5,5 +5,6 @@ "client": [], "production": [], "route": [], - "locator": [] + "locator": [], + "articles": [] } diff --git a/client/salix/src/spliting.js b/client/salix/src/spliting.js index 697bcef98..b62c3d1d6 100644 --- a/client/salix/src/spliting.js +++ b/client/salix/src/spliting.js @@ -43,3 +43,14 @@ export const locator = () => { }; core.splitingRegister.register('locator', locator); + +export const articles = () => { + return new Promise(resolve => { + require.ensure([], () => { + require('articles'); + resolve('articles'); + }, 'articles'); + }); +}; + +core.splitingRegister.register('articles', articles); diff --git a/services/nginx/static/images/icon_articles.svg b/services/nginx/static/images/icon_articles.svg new file mode 100644 index 000000000..cfd090f11 --- /dev/null +++ b/services/nginx/static/images/icon_articles.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 37bdd9d2b6418c8d56eddb812bfe028fc8210024 Mon Sep 17 00:00:00 2001 From: Daniel Herrero Date: Tue, 19 Dec 2017 11:24:24 +0100 Subject: [PATCH 02/21] rename new module article to item --- client/articles/index.js | 1 - client/articles/routes.json | 21 ------------------ client/articles/src/index/index.html | 0 client/articles/src/locale/es.json | 3 --- client/item/index.js | 1 + client/item/routes.json | 22 +++++++++++++++++++ .../src/articles.js => item/src/item.js} | 2 +- client/item/src/list/list.html | 1 + .../index/index.js => item/src/list/list.js} | 8 +++---- client/item/src/locale/es.json | 4 ++++ client/{articles => item}/src/module.js | 0 client/modules.json | 2 +- client/salix/src/locale/es.json | 1 + client/salix/src/spliting.js | 10 ++++----- 14 files changed, 40 insertions(+), 36 deletions(-) delete mode 100644 client/articles/index.js delete mode 100644 client/articles/routes.json delete mode 100644 client/articles/src/index/index.html delete mode 100644 client/articles/src/locale/es.json create mode 100644 client/item/index.js create mode 100644 client/item/routes.json rename client/{articles/src/articles.js => item/src/item.js} (52%) create mode 100644 client/item/src/list/list.html rename client/{articles/src/index/index.js => item/src/list/list.js} (50%) create mode 100644 client/item/src/locale/es.json rename client/{articles => item}/src/module.js (100%) diff --git a/client/articles/index.js b/client/articles/index.js deleted file mode 100644 index 5e4d1e64b..000000000 --- a/client/articles/index.js +++ /dev/null @@ -1 +0,0 @@ -export * from './src/articles'; diff --git a/client/articles/routes.json b/client/articles/routes.json deleted file mode 100644 index af8c49149..000000000 --- a/client/articles/routes.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "module": "articles", - "name": "Articles", - "icon": "/static/images/icon_articles.svg", - "routes": [ - { - "state": "articles", - "abstract": true, - "acl": ["employee"] - }, - { - "url": "/articles", - "state": "articles.index", - "component": "vn-articles-index" - }, { - "url": "/create", - "state": "articles.create", - "component": "vn-client-create" - } - ] -} \ No newline at end of file diff --git a/client/articles/src/index/index.html b/client/articles/src/index/index.html deleted file mode 100644 index e69de29bb..000000000 diff --git a/client/articles/src/locale/es.json b/client/articles/src/locale/es.json deleted file mode 100644 index 947465dcc..000000000 --- a/client/articles/src/locale/es.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "Articles": "Artículos" -} \ No newline at end of file diff --git a/client/item/index.js b/client/item/index.js new file mode 100644 index 000000000..c94fde7de --- /dev/null +++ b/client/item/index.js @@ -0,0 +1 @@ +export * from './src/item'; diff --git a/client/item/routes.json b/client/item/routes.json new file mode 100644 index 000000000..9f811bea7 --- /dev/null +++ b/client/item/routes.json @@ -0,0 +1,22 @@ +{ + "module": "item", + "name": "Items", + "icon": "/static/images/icon_articles.svg", + "routes": [ + { + "url": "/item", + "state": "item", + "abstract": true, + "component": "ui-view" + }, + { + "url": "/list", + "state": "item.index", + "component": "vn-item-list" + }, { + "url": "/create", + "state": "item.create", + "component": "vn-item-create" + } + ] +} \ No newline at end of file diff --git a/client/articles/src/articles.js b/client/item/src/item.js similarity index 52% rename from client/articles/src/articles.js rename to client/item/src/item.js index ad5e0bb9d..9d5ca85e9 100644 --- a/client/articles/src/articles.js +++ b/client/item/src/item.js @@ -1,3 +1,3 @@ export * from './module'; -import './index/index'; +import './list/list'; diff --git a/client/item/src/list/list.html b/client/item/src/list/list.html new file mode 100644 index 000000000..2e1f6a06e --- /dev/null +++ b/client/item/src/list/list.html @@ -0,0 +1 @@ +

hi world

\ No newline at end of file diff --git a/client/articles/src/index/index.js b/client/item/src/list/list.js similarity index 50% rename from client/articles/src/index/index.js rename to client/item/src/list/list.js index d20d6b005..ce4d773fa 100644 --- a/client/articles/src/index/index.js +++ b/client/item/src/list/list.js @@ -1,6 +1,6 @@ import ngModule from '../module'; -export default class Controller { +class ItemList { constructor() { this.model = {}; } @@ -9,7 +9,7 @@ export default class Controller { } } -ngModule.component('vnArticlesIndex', { - template: require('./index.html'), - controller: Controller +ngModule.component('vnItemList', { + template: require('./list.html'), + controller: ItemList }); diff --git a/client/item/src/locale/es.json b/client/item/src/locale/es.json new file mode 100644 index 000000000..fd01bdf5f --- /dev/null +++ b/client/item/src/locale/es.json @@ -0,0 +1,4 @@ +{ + "Items": "Artículos", + "Item": "Artículo" +} \ No newline at end of file diff --git a/client/articles/src/module.js b/client/item/src/module.js similarity index 100% rename from client/articles/src/module.js rename to client/item/src/module.js diff --git a/client/modules.json b/client/modules.json index 02af7e678..d7dd0f7ce 100644 --- a/client/modules.json +++ b/client/modules.json @@ -6,5 +6,5 @@ "production": [], "route": [], "locator": [], - "articles": [] + "item": [] } diff --git a/client/salix/src/locale/es.json b/client/salix/src/locale/es.json index 0ee929eab..338feede8 100644 --- a/client/salix/src/locale/es.json +++ b/client/salix/src/locale/es.json @@ -13,6 +13,7 @@ "Production" : "Producción", "Modules access" : "Acceso a módulos", "Locator": "Localizador", + "Items": "Artículos", "name": "Nombre", "credit": "Crédito", "phone": "Teléfono", diff --git a/client/salix/src/spliting.js b/client/salix/src/spliting.js index b62c3d1d6..b1a2a4d19 100644 --- a/client/salix/src/spliting.js +++ b/client/salix/src/spliting.js @@ -44,13 +44,13 @@ export const locator = () => { core.splitingRegister.register('locator', locator); -export const articles = () => { +export const item = () => { return new Promise(resolve => { require.ensure([], () => { - require('articles'); - resolve('articles'); - }, 'articles'); + require('item'); + resolve('item'); + }, 'item'); }); }; -core.splitingRegister.register('articles', articles); +core.splitingRegister.register('item', item); From 2c03dcf1396eea7707d68fe83e1522f8623c2cb0 Mon Sep 17 00:00:00 2001 From: Daniel Herrero Date: Tue, 19 Dec 2017 11:25:45 +0100 Subject: [PATCH 03/21] renamed item module --- client/item/src/module.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/item/src/module.js b/client/item/src/module.js index be4d80d9c..b44509fb2 100644 --- a/client/item/src/module.js +++ b/client/item/src/module.js @@ -1,5 +1,5 @@ import {ng} from 'vendor'; import 'core'; -const ngModule = ng.module('articles', ['vnCore']); +const ngModule = ng.module('item', ['vnCore']); export default ngModule; From 55691b4cc955a2df64e1e495238a8cf2774a3b17 Mon Sep 17 00:00:00 2001 From: Daniel Herrero Date: Tue, 19 Dec 2017 12:29:35 +0100 Subject: [PATCH 04/21] nuevo micro servicio Item --- client/core/src/textfield/style.scss | 9 ++++- client/item/routes.json | 2 +- client/item/src/list/list.html | 25 +++++++++++- docker-compose.yml | 14 ++++++- services/item/Dockerfile | 15 ++++++++ services/item/common/methods/item/filter.js | 20 ++++++++++ services/item/common/models/item.js | 3 ++ services/item/common/models/item.json | 35 +++++++++++++++++ services/item/package.json | 19 ++++++++++ services/item/server/config.json | 3 ++ services/item/server/model-config.json | 31 +++++++++++++++ services/item/server/server.js | 4 ++ services/nginx/conf-dev.conf | 3 ++ services/nginx/conf-prod.conf | 3 ++ .../nginx/static/images/icon_articles.svg | 38 ------------------- services/nginx/static/images/icon_item.svg | 37 ++++++++++++++++++ 16 files changed, 218 insertions(+), 43 deletions(-) create mode 100644 services/item/Dockerfile create mode 100644 services/item/common/methods/item/filter.js create mode 100644 services/item/common/models/item.js create mode 100644 services/item/common/models/item.json create mode 100644 services/item/package.json create mode 100644 services/item/server/config.json create mode 100644 services/item/server/model-config.json create mode 100644 services/item/server/server.js delete mode 100644 services/nginx/static/images/icon_articles.svg create mode 100644 services/nginx/static/images/icon_item.svg diff --git a/client/core/src/textfield/style.scss b/client/core/src/textfield/style.scss index b8d155777..0f9d95c8e 100644 --- a/client/core/src/textfield/style.scss +++ b/client/core/src/textfield/style.scss @@ -7,13 +7,18 @@ vn-textfield { width: auto; top: 0px; right: -6px; - margin: 22px 0px; - background: transparent; + margin: 21px 0px; + background: white; + opacity: 1; z-index: 9999; + color: #aaa; } .material-icons { font-size: 18px; float: right; margin-right: 5px; } + .material-icons:hover { + color: rgba(0,0,0, .87); + } } \ No newline at end of file diff --git a/client/item/routes.json b/client/item/routes.json index 9f811bea7..803a8cce8 100644 --- a/client/item/routes.json +++ b/client/item/routes.json @@ -1,7 +1,7 @@ { "module": "item", "name": "Items", - "icon": "/static/images/icon_articles.svg", + "icon": "/static/images/icon_item.svg", "routes": [ { "url": "/item", diff --git a/client/item/src/list/list.html b/client/item/src/list/list.html index 2e1f6a06e..c1996e46f 100644 --- a/client/item/src/list/list.html +++ b/client/item/src/list/list.html @@ -1 +1,24 @@ -

hi world

\ No newline at end of file + +
+
+ + + + + + + + + + +
+ + + +
\ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index b8d64389b..4dcb065b7 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -87,7 +87,19 @@ services: expose: - "3006" ports: - - "3006:3006" + - "3006:3006" + item: + environment: + - NODE_ENV=${NODE_ENV} + container_name: "${BRANCH_NAME}-item" + image: "item:${TAG}" + build: + context: ./services + dockerfile: /item/Dockerfile + expose: + - "3007" + ports: + - "3007:3007" nginx: container_name: "${BRANCH_NAME}-nginx" image: "nginx:${TAG}" diff --git a/services/item/Dockerfile b/services/item/Dockerfile new file mode 100644 index 000000000..73be20777 --- /dev/null +++ b/services/item/Dockerfile @@ -0,0 +1,15 @@ +FROM node:6.9.1 + +COPY item /app + +COPY loopback /loopback + +WORKDIR /app + +RUN npm install + +RUN npm -g install pm2 + +CMD ["pm2-docker", "./server/server.js"] + +EXPOSE 3007 diff --git a/services/item/common/methods/item/filter.js b/services/item/common/methods/item/filter.js new file mode 100644 index 000000000..59be28565 --- /dev/null +++ b/services/item/common/methods/item/filter.js @@ -0,0 +1,20 @@ +module.exports = Self => { + Self.installMethod('filter', filterParams); + + function filterParams(params) { + let filter = { + where: {}, + skip: (params.page - 1) * params.size, + limit: params.size, + order: params.order || 'name ASC'/* , + include: { + relation: "greugeType", + scope: { + fields: ["id", "name"] + } + } */ + }; + + return filter; + } +}; diff --git a/services/item/common/models/item.js b/services/item/common/models/item.js new file mode 100644 index 000000000..4c8019af3 --- /dev/null +++ b/services/item/common/models/item.js @@ -0,0 +1,3 @@ +module.exports = function(Self) { + require('../methods/item/filter.js')(Self); +}; diff --git a/services/item/common/models/item.json b/services/item/common/models/item.json new file mode 100644 index 000000000..8479e2217 --- /dev/null +++ b/services/item/common/models/item.json @@ -0,0 +1,35 @@ +{ + "name": "Item", + "base": "VnModel", + "options": { + "mysql": { + "table": "item", + "database": "vn" + } + }, + "properties": { + "id": { + "type": "Number", + "id": true, + "description": "Identifier" + }, + "size": { + "type": "Number" + }, + "category": { + "type": "Number" + }, + "stems": { + "type": "Number" + }, + "description": { + "type": "String" + }, + "isOnOffer": { + "type": "Boolean" + }, + "isBargain": { + "type": "Boolean" + } + } + } \ No newline at end of file diff --git a/services/item/package.json b/services/item/package.json new file mode 100644 index 000000000..7a9c9b48a --- /dev/null +++ b/services/item/package.json @@ -0,0 +1,19 @@ +{ + "name": "vn-item", + "version": "1.0.0", + "main": "server/server.js", + "scripts": { + "lint": "eslint .", + "start": "node .", + "posttest": "npm run lint && nsp check" + }, + "repository": { + "type": "git", + "url": "https://git.verdnatura.es/salix" + }, + "license": "GPL-3.0", + "description": "vn-item", + "dependencies": { + "uuid": "^3.1.0" + } +} diff --git a/services/item/server/config.json b/services/item/server/config.json new file mode 100644 index 000000000..f52e73b1d --- /dev/null +++ b/services/item/server/config.json @@ -0,0 +1,3 @@ +{ + "port": 3007 +} diff --git a/services/item/server/model-config.json b/services/item/server/model-config.json new file mode 100644 index 000000000..60b0133b3 --- /dev/null +++ b/services/item/server/model-config.json @@ -0,0 +1,31 @@ +{ + "user": { + "dataSource": "salix" + }, + "AccessToken": { + "dataSource": "salix", + "relations": { + "user": { + "type": "belongsTo", + "model": "user", + "foreignKey": "userId" + } + } + }, + "ACL": { + "dataSource": "salix" + }, + "RoleMapping": { + "dataSource": "salix" + }, + "Role": { + "dataSource": "salix" + }, + "Account": { + "dataSource": "salix" + }, + "Item": { + "dataSource": "vn" + } + +} diff --git a/services/item/server/server.js b/services/item/server/server.js new file mode 100644 index 000000000..f0493dcd9 --- /dev/null +++ b/services/item/server/server.js @@ -0,0 +1,4 @@ +var vnLoopback = require('../../loopback/server/server.js'); + +var app = module.exports = vnLoopback.loopback(); +vnLoopback.boot(app, __dirname, module); diff --git a/services/nginx/conf-dev.conf b/services/nginx/conf-dev.conf index b35bd3757..104bd704f 100644 --- a/services/nginx/conf-dev.conf +++ b/services/nginx/conf-dev.conf @@ -46,6 +46,9 @@ http { location ~ ^/print(?:/(.*))?$ { proxy_pass http://127.0.0.1:3006/$1$is_args$args; } + location ~ ^/item(?:/(.*))?$ { + proxy_pass http://127.0.0.1:3007/$1$is_args$args; + } # Este tiene que ser el último location ~ ^(?:/(.*))?$ { proxy_pass http://127.0.0.1:3001/$1$is_args$args; diff --git a/services/nginx/conf-prod.conf b/services/nginx/conf-prod.conf index eab866aaa..9e8843344 100644 --- a/services/nginx/conf-prod.conf +++ b/services/nginx/conf-prod.conf @@ -41,6 +41,9 @@ http { location ~ ^/print(?:/(.*))?$ { proxy_pass http://print:3006/$1$is_args$args; } + location ~ ^/item(?:/(.*))?$ { + proxy_pass http://item:3007/$1$is_args$args; + } # Este tiene que ser el último location ~ ^(?:/(.*))?$ { proxy_pass http://salix:3001/$1$is_args$args; diff --git a/services/nginx/static/images/icon_articles.svg b/services/nginx/static/images/icon_articles.svg deleted file mode 100644 index cfd090f11..000000000 --- a/services/nginx/static/images/icon_articles.svg +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/services/nginx/static/images/icon_item.svg b/services/nginx/static/images/icon_item.svg new file mode 100644 index 000000000..2cebc333f --- /dev/null +++ b/services/nginx/static/images/icon_item.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 5bc375d3247e0c4a3d5ae266306e7fd924a1f4e0 Mon Sep 17 00:00:00 2001 From: Daniel Herrero Date: Tue, 19 Dec 2017 14:28:19 +0100 Subject: [PATCH 05/21] list items with images --- client/item/routes.json | 6 +++- client/item/src/list/item-product.html | 14 ++++++++ client/item/src/list/item-product.js | 8 +++++ client/item/src/list/list.js | 2 ++ client/item/src/list/style.css | 16 +++++++++ services/item/common/methods/item/filter.js | 2 +- services/item/common/models/item.json | 9 +++++ services/nginx/static/images/icon_item.png | Bin 0 -> 3006 bytes services/nginx/static/images/icon_item.svg | 37 -------------------- 9 files changed, 55 insertions(+), 39 deletions(-) create mode 100644 client/item/src/list/item-product.html create mode 100644 client/item/src/list/item-product.js create mode 100644 client/item/src/list/style.css create mode 100644 services/nginx/static/images/icon_item.png delete mode 100644 services/nginx/static/images/icon_item.svg diff --git a/client/item/routes.json b/client/item/routes.json index 803a8cce8..014dc318d 100644 --- a/client/item/routes.json +++ b/client/item/routes.json @@ -1,7 +1,7 @@ { "module": "item", "name": "Items", - "icon": "/static/images/icon_item.svg", + "icon": "/static/images/icon_item.png", "routes": [ { "url": "/item", @@ -17,6 +17,10 @@ "url": "/create", "state": "item.create", "component": "vn-item-create" + }, { + "url": "/data", + "state": "item.data", + "component": "vn-item-data" } ] } \ No newline at end of file diff --git a/client/item/src/list/item-product.html b/client/item/src/list/item-product.html new file mode 100644 index 000000000..6368f1f95 --- /dev/null +++ b/client/item/src/list/item-product.html @@ -0,0 +1,14 @@ + + + + + + +
{{$ctrl.item.name}}
+
Id: {{$ctrl.item.id}}
+
Category: {{$ctrl.item.category}}
+
Description: {{$ctrl.item.description}}
+
Size: {{$ctrl.item.size}}
+
+
+
diff --git a/client/item/src/list/item-product.js b/client/item/src/list/item-product.js new file mode 100644 index 000000000..4f7c7b4e7 --- /dev/null +++ b/client/item/src/list/item-product.js @@ -0,0 +1,8 @@ +import ngModule from '../module'; + +ngModule.component('vnItemProduct', { + template: require('./item-product.html'), + bindings: { + item: '<' + } +}); diff --git a/client/item/src/list/list.js b/client/item/src/list/list.js index ce4d773fa..db48692d8 100644 --- a/client/item/src/list/list.js +++ b/client/item/src/list/list.js @@ -1,4 +1,6 @@ import ngModule from '../module'; +import './item-product'; +import './style.css'; class ItemList { constructor() { diff --git a/client/item/src/list/style.css b/client/item/src/list/style.css new file mode 100644 index 000000000..f6afaff66 --- /dev/null +++ b/client/item/src/list/style.css @@ -0,0 +1,16 @@ +vn-item-product { + display: block; +} +vn-item-product a { + display: block; + text-decoration: none; + color: inherit; +} +vn-item-product a:hover { + color: white; + background-color: #424242; +} + +.vn-item-product-name { + font-family: vn-font-bold; +} diff --git a/services/item/common/methods/item/filter.js b/services/item/common/methods/item/filter.js index 59be28565..c60c2222b 100644 --- a/services/item/common/methods/item/filter.js +++ b/services/item/common/methods/item/filter.js @@ -6,7 +6,7 @@ module.exports = Self => { where: {}, skip: (params.page - 1) * params.size, limit: params.size, - order: params.order || 'name ASC'/* , + order: params.order || 'relevancy DESC'/* , include: { relation: "greugeType", scope: { diff --git a/services/item/common/models/item.json b/services/item/common/models/item.json index 8479e2217..0ccbb2e4c 100644 --- a/services/item/common/models/item.json +++ b/services/item/common/models/item.json @@ -30,6 +30,15 @@ }, "isBargain": { "type": "Boolean" + }, + "comment": { + "type": "String" + }, + "relevancy": { + "type": "Number" + }, + "image": { + "type": "String" } } } \ No newline at end of file diff --git a/services/nginx/static/images/icon_item.png b/services/nginx/static/images/icon_item.png new file mode 100644 index 0000000000000000000000000000000000000000..ff660fb23ebae0b5957a21cad994edba30698650 GIT binary patch literal 3006 zcmV;v3qkaWP)jiu-93@4;NfA*)dmY9&)-VK0)P_$cK~hxL_AbXuDY0$rTPZIspYd@ z0C*smIp?8ca#bNEUG|WdnT=lWQVK=z-4+ z$FGSn+lCf!MFJlN3z*XElF2nuUA3Yxf=R5W0M?$LgEg0Dx+*6fbYie7=R}OI552%H zK6XwnQK!egq3fA^=wiy2OX{K2-~y!{S~YZmP0pWHgf$-N_=?FDp03IaGeD`UGGzuh zgylS~&|?WExRf+CaxKUbm>%SqYl1P6?6^XYB?A$jHCICyl*7Da^GG^qF`|Vi$ckN5 z=&=WSIVPdUreL`;0KW(DQ^WBqhq|iE%di6QszQ&Y^ujQ?M!*ulp8)*AaQp}Cf}4L} zH_qg0B9Q+I;8!(2A3|(Nmoui~7W+kY)?5x<$wLETNiE}hZ0Uxq*p)$#g_+tTgb3j$ z6+&!9cWi|andkQ!2_f=|d)Npek`SJo?{3jHeQ%2p*7{{aJ$7T!V@oDiealnOXZm=<>tNI1d}EH;+A?N~LnfEYS&{7x zuY()S5>fjY6^<|#k>oH9@L?omg5PLn zRqKHD*pehbTiw$4q$i{6D(~jLrpd`*A(EjtXqe(i$JiIET?9xndEFNs^jOzP&yxOL zr>o8|LXnfPcK?{-NTC-;TanB8x`Q5TS`pgRj6p4GSBxMdO-}IS@YVTa>P#tXo2ea@+1J)`Vo5K%MlcFg0ViB~oYbpsJ5gn_{JI zDaVm~jB@u8l4;^9F9G}qz+V9T3s0Ld+!KkH@Tgdck2|h&=;KJC7e_ONWa{GQ0DcSL zm!;6c*hTGvBA2SibaAAyqTDV+GHvi@?CY(13ExX7ZLp6cm6wu+igLRQ$(*;)WB;a? z?sxF3T4HeID(jYV94Yj^hdG+3_I!yziok_daMu(^nnG&NuL1lM6GDj9oU7tUA*S}o zRG7a5_>9Trj~eYoQL6+T&d+43n!LOOP&?$z_Kwl{y*dAqVYp znOuHi43|3za@}CO%!Ck-5A1R$MXot^!9`gwg7K7GlL%#u=@#VzZ;UXvhcPVp$b)N$ z6~W2@$O*wGLH~+eWx|hz$>j>k6vQmU?@&aHaEtOX;D4Me!Y=cG!Q^s^0vsP>aydkb za4Xv|xdOlm34YdNp5vo{ul*Hvf!G3^^~sjY0p{3me&D4fCYKW&ll98^kutelAyS0@ zoF6Zf%LSGQx0EFd`aqD-zd3mG1Y0gg$V+aM!Q|>458x<2yG4gk#Xiq2*>X9VRVLun z9wwJV#6&QT@K1zXnTIpCgRVw1CCw!tqTJEUV9V7zbFx6Nw1h2tr272 zici}CB6%E$8z_)PFkI04QGWDUBkoDcW zMCWDbBIVFUEnT(7(^h=IhkYLNzEAE-&{y@LmU^s@emiT@4;Rd%Cs?Ao#qlj1_jz<3 zM3v+zHxE$tSlfO(Wox!1a zP25$+(6=~NLkpwzc^q@$+SG?yLiXF~vj1?ai2kXC779FV#ixcA&M(LS@cQjsawn}la;K8$qKv090(`LygM|CR91*TXGC2-AU(_^_sk0p*ZS8CB! ztI&1TA!x2H)BJnVI5w-%M01T5E@8JgLg*rfJ+&wAL61cUAQfgP9D?O4>mQk=Iy2~> z75!`*ST4EC#+0!jzc)Li!9Fx{sTO8M0^bz6NbzA7tBG6*eb>zJUDr6!#_)$)6LmvV z{w}-3V+w&(?Oy(z$aj!s2oBY9l~Kp~sGA>d8(KXuxegmrk6pI>`zpQ0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - From adb2f60fefd99b07a266e3f264e898c256db3b2a Mon Sep 17 00:00:00 2001 From: Daniel Herrero Date: Tue, 19 Dec 2017 14:33:01 +0100 Subject: [PATCH 06/21] list item widht image forced by css --- client/item/src/list/item-product.html | 1 - client/item/src/list/style.css | 4 ++++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/client/item/src/list/item-product.html b/client/item/src/list/item-product.html index 6368f1f95..916881e86 100644 --- a/client/item/src/list/item-product.html +++ b/client/item/src/list/item-product.html @@ -4,7 +4,6 @@ -
{{$ctrl.item.name}}
Id: {{$ctrl.item.id}}
Category: {{$ctrl.item.category}}
Description: {{$ctrl.item.description}}
diff --git a/client/item/src/list/style.css b/client/item/src/list/style.css index f6afaff66..476406982 100644 --- a/client/item/src/list/style.css +++ b/client/item/src/list/style.css @@ -11,6 +11,10 @@ vn-item-product a:hover { background-color: #424242; } +vn-item-product img { + max-width: 150px; +} + .vn-item-product-name { font-family: vn-font-bold; } From 29c75d3d8db3fb81460f97800a05a353e240a27b Mon Sep 17 00:00:00 2001 From: Daniel Herrero Date: Tue, 19 Dec 2017 14:58:14 +0100 Subject: [PATCH 07/21] model Itemype added --- client/item/src/list/item-product.html | 1 + services/item/common/methods/item/filter.js | 6 +++--- services/item/common/models/item-type.json | 23 +++++++++++++++++++++ services/item/common/models/item.json | 7 +++++++ services/item/server/model-config.json | 4 +++- 5 files changed, 37 insertions(+), 4 deletions(-) create mode 100644 services/item/common/models/item-type.json diff --git a/client/item/src/list/item-product.html b/client/item/src/list/item-product.html index 916881e86..951eabfc5 100644 --- a/client/item/src/list/item-product.html +++ b/client/item/src/list/item-product.html @@ -8,6 +8,7 @@
Category: {{$ctrl.item.category}}
Description: {{$ctrl.item.description}}
Size: {{$ctrl.item.size}}
+
Type: {{$ctrl.item.itemType.name}}
diff --git a/services/item/common/methods/item/filter.js b/services/item/common/methods/item/filter.js index c60c2222b..af21fb58b 100644 --- a/services/item/common/methods/item/filter.js +++ b/services/item/common/methods/item/filter.js @@ -6,13 +6,13 @@ module.exports = Self => { where: {}, skip: (params.page - 1) * params.size, limit: params.size, - order: params.order || 'relevancy DESC'/* , + order: params.order || 'relevancy DESC', include: { - relation: "greugeType", + relation: "itemType", scope: { fields: ["id", "name"] } - } */ + } }; return filter; diff --git a/services/item/common/models/item-type.json b/services/item/common/models/item-type.json new file mode 100644 index 000000000..d1f45c0db --- /dev/null +++ b/services/item/common/models/item-type.json @@ -0,0 +1,23 @@ +{ + "name": "ItemType", + "base": "VnModel", + "options": { + "mysql": { + "table": "itemType", + "database": "vn" + } + }, + "properties": { + "id": { + "type": "Number", + "id": true, + "description": "Identifier" + }, + "name": { + "type": "String" + }, + "life": { + "type": "Number" + } + } +} \ No newline at end of file diff --git a/services/item/common/models/item.json b/services/item/common/models/item.json index 0ccbb2e4c..6db749227 100644 --- a/services/item/common/models/item.json +++ b/services/item/common/models/item.json @@ -40,5 +40,12 @@ "image": { "type": "String" } + }, + "relations": { + "itemType": { + "type": "belongsTo", + "model": "ItemType", + "foreignKey": "typeFk" + } } } \ No newline at end of file diff --git a/services/item/server/model-config.json b/services/item/server/model-config.json index 60b0133b3..ab9410fb5 100644 --- a/services/item/server/model-config.json +++ b/services/item/server/model-config.json @@ -26,6 +26,8 @@ }, "Item": { "dataSource": "vn" + }, + "ItemType": { + "dataSource": "vn" } - } From bd80c9cbe009a751de25ef5cfb9a38386299cd6b Mon Sep 17 00:00:00 2001 From: Daniel Herrero Date: Tue, 19 Dec 2017 15:00:15 +0100 Subject: [PATCH 08/21] locale list item --- client/item/src/locale/es.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/client/item/src/locale/es.json b/client/item/src/locale/es.json index fd01bdf5f..e51c46008 100644 --- a/client/item/src/locale/es.json +++ b/client/item/src/locale/es.json @@ -1,4 +1,8 @@ { "Items": "Artículos", - "Item": "Artículo" + "Item": "Artículo", + "Category": "Categoría", + "Description": "Descripción", + "Size": "Tamaño", + "Type": "Tipo" } \ No newline at end of file From dc03c5f453d1ad3a5275de76b0919f8baa13f268 Mon Sep 17 00:00:00 2001 From: Daniel Herrero Date: Wed, 20 Dec 2017 09:53:50 +0100 Subject: [PATCH 09/21] modelos para el microservicio item --- services/item/common/models/ink.json | 28 +++++++++++++ services/item/common/models/intrastat.json | 32 +++++++++++++++ services/item/common/models/item.json | 20 +++++++++ services/item/common/models/origin.json | 23 +++++++++++ services/item/common/models/producer.json | 20 +++++++++ services/item/common/models/tax-class.json | 23 +++++++++++ services/item/common/models/tax-code.json | 47 ++++++++++++++++++++++ services/item/common/models/tax-type.json | 36 +++++++++++++++++ services/item/server/model-config.json | 24 +++++++++++ 9 files changed, 253 insertions(+) create mode 100644 services/item/common/models/ink.json create mode 100644 services/item/common/models/intrastat.json create mode 100644 services/item/common/models/origin.json create mode 100644 services/item/common/models/producer.json create mode 100644 services/item/common/models/tax-class.json create mode 100644 services/item/common/models/tax-code.json create mode 100644 services/item/common/models/tax-type.json diff --git a/services/item/common/models/ink.json b/services/item/common/models/ink.json new file mode 100644 index 000000000..52d6c22f8 --- /dev/null +++ b/services/item/common/models/ink.json @@ -0,0 +1,28 @@ +{ + "name": "Ink", + "base": "VnModel", + "options": { + "mysql": { + "table": "ink", + "database": "vn" + } + }, + "properties": { + "id": { + "type": "Number", + "id": true, + "description": "Identifier" + }, + "name": { + "type": "String" + }, + "picture": { + "mysql": { + "dataType": "blob" + } + }, + "showOrder": { + "type": "number" + } + } +} \ No newline at end of file diff --git a/services/item/common/models/intrastat.json b/services/item/common/models/intrastat.json new file mode 100644 index 000000000..0ef5c5876 --- /dev/null +++ b/services/item/common/models/intrastat.json @@ -0,0 +1,32 @@ +{ + "name": "Intrastat", + "base": "VnModel", + "options": { + "mysql": { + "table": "intrastat", + "database": "vn" + } + }, + "properties": { + "id": { + "type": "Number", + "id": true, + "description": "Identifier" + }, + "description": { + "type": "String" + } + }, + "relations": { + "taxClass": { + "type": "belongsTo", + "model": "TaxClass", + "foreignKey": "taxClassFk" + }, + "taxCode": { + "type": "belongsTo", + "model": "TaxCode", + "foreignKey": "taxCodeFk" + } + } +} \ No newline at end of file diff --git a/services/item/common/models/item.json b/services/item/common/models/item.json index 6db749227..2ea6707b6 100644 --- a/services/item/common/models/item.json +++ b/services/item/common/models/item.json @@ -46,6 +46,26 @@ "type": "belongsTo", "model": "ItemType", "foreignKey": "typeFk" + }, + "ink": { + "type": "belongsTo", + "model": "Ink", + "foreignKey": "inkFk" + }, + "origin": { + "type": "belongsTo", + "model": "Origin", + "foreignKey": "originFk" + }, + "producer": { + "type": "belongsTo", + "model": "Producer", + "foreignKey": "producerFk" + }, + "intrastat": { + "type": "belongsTo", + "model": "Intrastat", + "foreignKey": "intrastatFk" } } } \ No newline at end of file diff --git a/services/item/common/models/origin.json b/services/item/common/models/origin.json new file mode 100644 index 000000000..9ebeb98f8 --- /dev/null +++ b/services/item/common/models/origin.json @@ -0,0 +1,23 @@ +{ + "name": "Origin", + "base": "VnModel", + "options": { + "mysql": { + "table": "origin", + "database": "vn" + } + }, + "properties": { + "id": { + "type": "Number", + "id": true, + "description": "Identifier" + }, + "code": { + "type": "String" + }, + "name": { + "type": "String" + } + } +} \ No newline at end of file diff --git a/services/item/common/models/producer.json b/services/item/common/models/producer.json new file mode 100644 index 000000000..f4628b988 --- /dev/null +++ b/services/item/common/models/producer.json @@ -0,0 +1,20 @@ +{ + "name": "Producer", + "base": "VnModel", + "options": { + "mysql": { + "table": "producer", + "database": "vn" + } + }, + "properties": { + "id": { + "type": "Number", + "id": true, + "description": "Identifier" + }, + "name": { + "type": "String" + } + } +} \ No newline at end of file diff --git a/services/item/common/models/tax-class.json b/services/item/common/models/tax-class.json new file mode 100644 index 000000000..c107f3391 --- /dev/null +++ b/services/item/common/models/tax-class.json @@ -0,0 +1,23 @@ +{ + "name": "TaxClass", + "base": "VnModel", + "options": { + "mysql": { + "table": "taxClass", + "database": "vn" + } + }, + "properties": { + "id": { + "type": "Number", + "id": true, + "description": "Identifier" + }, + "description": { + "type": "String" + }, + "code": { + "type": "String" + } + } +} \ No newline at end of file diff --git a/services/item/common/models/tax-code.json b/services/item/common/models/tax-code.json new file mode 100644 index 000000000..93a426a07 --- /dev/null +++ b/services/item/common/models/tax-code.json @@ -0,0 +1,47 @@ +{ + "name": "TaxCode", + "base": "VnModel", + "options": { + "mysql": { + "table": "taxCode", + "database": "vn" + } + }, + "properties": { + "id": { + "type": "Number", + "id": true, + "description": "Identifier" + }, + "dated": { + "type": "date" + }, + "code": { + "type": "String" + }, + "rate": { + "type": "number" + }, + "equalizationTax": { + "type": "number" + }, + "type": { + "type": "String" + }, + "isActive": { + "type": "Boolean" + } + }, + "relations": { + "taxType": { + "type": "belongsTo", + "model": "TaxType", + "foreignKey": "taxTypeFk" + }, + "link": { + "type": "belongsTo", + "model": "Link", + "foreignKey": "linkFk" + } + } +} \ No newline at end of file diff --git a/services/item/common/models/tax-type.json b/services/item/common/models/tax-type.json new file mode 100644 index 000000000..527e90f39 --- /dev/null +++ b/services/item/common/models/tax-type.json @@ -0,0 +1,36 @@ +{ + "name": "TaxType", + "base": "VnModel", + "options": { + "mysql": { + "table": "taxType", + "database": "vn" + } + }, + "properties": { + "id": { + "type": "Number", + "id": true, + "description": "Identifier" + }, + "nickname": { + "type": "String" + }, + "serial": { + "type": "String" + }, + "TIPOOPE": { + "type": "String" + }, + "description": { + "type": "String" + } + }, + "relations": { + "country": { + "type": "belongsTo", + "model": "Country", + "foreignKey": "countryFk" + } + } +} \ No newline at end of file diff --git a/services/item/server/model-config.json b/services/item/server/model-config.json index ab9410fb5..43c9a80fe 100644 --- a/services/item/server/model-config.json +++ b/services/item/server/model-config.json @@ -29,5 +29,29 @@ }, "ItemType": { "dataSource": "vn" + }, + "Ink": { + "dataSource": "vn" + }, + "Origin": { + "dataSource": "vn" + }, + "Producer": { + "dataSource": "vn" + }, + "Intrastat": { + "dataSource": "vn" + }, + "TaxClass": { + "dataSource": "vn" + }, + "TaxCode": { + "dataSource": "vn" + }, + "TaxType": { + "dataSource": "vn" + }, + "Country": { + "dataSource": "salix" } } From 75c77fcdc6900c5f947d22186b12671618d51865 Mon Sep 17 00:00:00 2001 From: Daniel Herrero Date: Wed, 20 Dec 2017 12:20:59 +0100 Subject: [PATCH 10/21] filtro de items --- .../item/src/filter-panel/filter-panel.html | 58 +++++++++++++++++++ client/item/src/filter-panel/filter-panel.js | 16 +++++ client/item/src/filter-panel/locale/es.json | 5 ++ client/item/src/item.js | 1 + client/item/src/list/list.html | 2 +- services/item/common/methods/item/filter.js | 6 ++ services/item/common/models/ink.json | 5 -- 7 files changed, 87 insertions(+), 6 deletions(-) create mode 100644 client/item/src/filter-panel/filter-panel.html create mode 100644 client/item/src/filter-panel/filter-panel.js create mode 100644 client/item/src/filter-panel/locale/es.json diff --git a/client/item/src/filter-panel/filter-panel.html b/client/item/src/filter-panel/filter-panel.html new file mode 100644 index 000000000..607e7e7cc --- /dev/null +++ b/client/item/src/filter-panel/filter-panel.html @@ -0,0 +1,58 @@ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
diff --git a/client/item/src/filter-panel/filter-panel.js b/client/item/src/filter-panel/filter-panel.js new file mode 100644 index 000000000..608918b51 --- /dev/null +++ b/client/item/src/filter-panel/filter-panel.js @@ -0,0 +1,16 @@ +import ngModule from '../module'; + +class ItemFilterPanel { + constructor() { + this.onSubmit = () => {}; + } + + onSearch() { + this.onSubmit(this.filter); + } +} + +ngModule.component('vnItemFilterPanel', { + template: require('./filter-panel.html'), + controller: ItemFilterPanel +}); diff --git a/client/item/src/filter-panel/locale/es.json b/client/item/src/filter-panel/locale/es.json new file mode 100644 index 000000000..e7bc89814 --- /dev/null +++ b/client/item/src/filter-panel/locale/es.json @@ -0,0 +1,5 @@ +{ + "Ink": "Tinta", + "Origin": "Origen", + "Producer": "Productor" +} \ No newline at end of file diff --git a/client/item/src/item.js b/client/item/src/item.js index 9d5ca85e9..436f5a0ac 100644 --- a/client/item/src/item.js +++ b/client/item/src/item.js @@ -1,3 +1,4 @@ export * from './module'; import './list/list'; +import './filter-panel/filter-panel'; diff --git a/client/item/src/list/list.html b/client/item/src/list/list.html index c1996e46f..81f59b9ad 100644 --- a/client/item/src/list/list.html +++ b/client/item/src/list/list.html @@ -7,7 +7,7 @@ index="index" on-search="$ctrl.search(index)" advanced="true" - popover="vn-item-search-panel" + popover="vn-item-filter-panel" ignore-keys = "['page', 'size', 'search']" > diff --git a/services/item/common/methods/item/filter.js b/services/item/common/methods/item/filter.js index af21fb58b..683117b2d 100644 --- a/services/item/common/methods/item/filter.js +++ b/services/item/common/methods/item/filter.js @@ -15,6 +15,12 @@ module.exports = Self => { } }; + delete params.page; + delete params.size; + delete params.order; + + Object.assign(filter.where, params); + return filter; } }; diff --git a/services/item/common/models/ink.json b/services/item/common/models/ink.json index 52d6c22f8..5cb80693d 100644 --- a/services/item/common/models/ink.json +++ b/services/item/common/models/ink.json @@ -16,11 +16,6 @@ "name": { "type": "String" }, - "picture": { - "mysql": { - "dataType": "blob" - } - }, "showOrder": { "type": "number" } From 7acb047ec9017494b4e7d480418dae9fa603d3da Mon Sep 17 00:00:00 2001 From: Daniel Herrero Date: Wed, 20 Dec 2017 12:40:29 +0100 Subject: [PATCH 11/21] Item: interfaz crear item --- client/item/routes.json | 2 +- client/item/src/create/item-create.html | 65 +++++++++++++++++++++ client/item/src/create/item-create.js | 18 ++++++ client/item/src/item.js | 1 + services/item/common/methods/item/filter.js | 5 ++ 5 files changed, 90 insertions(+), 1 deletion(-) create mode 100644 client/item/src/create/item-create.html create mode 100644 client/item/src/create/item-create.js diff --git a/client/item/routes.json b/client/item/routes.json index 014dc318d..8096f991f 100644 --- a/client/item/routes.json +++ b/client/item/routes.json @@ -18,7 +18,7 @@ "state": "item.create", "component": "vn-item-create" }, { - "url": "/data", + "url": "/:id/data", "state": "item.data", "component": "vn-item-data" } diff --git a/client/item/src/create/item-create.html b/client/item/src/create/item-create.html new file mode 100644 index 000000000..bd3e3cce3 --- /dev/null +++ b/client/item/src/create/item-create.html @@ -0,0 +1,65 @@ + + + +
+
+ + + Create item + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
diff --git a/client/item/src/create/item-create.js b/client/item/src/create/item-create.js new file mode 100644 index 000000000..139822c44 --- /dev/null +++ b/client/item/src/create/item-create.js @@ -0,0 +1,18 @@ +import ngModule from '../module'; + +class ItemCreate { + constructor() { + this.item = {}; + } + + onSubmit() { + this.$.watcher.submit().then( + json => this.$state.go('item.data', {id: json.data.id}) + ); + } +} + +ngModule.component('vnItemCreate', { + template: require('./item-create.html'), + controller: ItemCreate +}); diff --git a/client/item/src/item.js b/client/item/src/item.js index 436f5a0ac..908f0e46f 100644 --- a/client/item/src/item.js +++ b/client/item/src/item.js @@ -2,3 +2,4 @@ export * from './module'; import './list/list'; import './filter-panel/filter-panel'; +import './create/item-create'; diff --git a/services/item/common/methods/item/filter.js b/services/item/common/methods/item/filter.js index 683117b2d..5db641a04 100644 --- a/services/item/common/methods/item/filter.js +++ b/services/item/common/methods/item/filter.js @@ -19,6 +19,11 @@ module.exports = Self => { delete params.size; delete params.order; + if (params.itemSize) { + filter.where.size = params.itemSize; + delete params.itemSize; + } + Object.assign(filter.where, params); return filter; From 86209e43cd4b7f6799efcfdec88d6ecf8512e677 Mon Sep 17 00:00:00 2001 From: Daniel Herrero Date: Wed, 20 Dec 2017 14:36:12 +0100 Subject: [PATCH 12/21] card item structure --- client/client/src/card/card.js | 2 +- client/client/src/card/style.scss | 12 ----------- client/item/routes.json | 15 +++++++++++--- client/item/src/card/item-card.html | 20 ++++++++++++++++++ client/item/src/card/item-card.js | 12 +++++++++++ client/item/src/create/item-create.js | 2 +- client/item/src/data/item-data.html | 0 client/item/src/data/item-data.js | 0 client/item/src/item.js | 1 + client/item/src/list/item-product.html | 28 +++++++++++++------------- client/item/src/list/list.html | 4 +++- client/item/src/list/style.css | 4 ++-- client/salix/src/styles/misc.scss | 13 ++++++++++++ 13 files changed, 79 insertions(+), 34 deletions(-) delete mode 100644 client/client/src/card/style.scss create mode 100644 client/item/src/card/item-card.html create mode 100644 client/item/src/card/item-card.js create mode 100644 client/item/src/data/item-data.html create mode 100644 client/item/src/data/item-data.js diff --git a/client/client/src/card/card.js b/client/client/src/card/card.js index 560ca8f9e..9660ce3ce 100644 --- a/client/client/src/card/card.js +++ b/client/client/src/card/card.js @@ -1,5 +1,5 @@ import ngModule from '../module'; -import './style.scss'; + export default class Controller { constructor() { this.client = null; diff --git a/client/client/src/card/style.scss b/client/client/src/card/style.scss deleted file mode 100644 index 74c5695c6..000000000 --- a/client/client/src/card/style.scss +++ /dev/null @@ -1,12 +0,0 @@ -vn-main-block { - display:block; - max-width: 1920px; - width:100%; - margin: 0 auto; - - .left-block { - min-width: 18em; - padding-left: 1em; - padding-bottom: 1em; - } -} diff --git a/client/item/routes.json b/client/item/routes.json index 8096f991f..61197e499 100644 --- a/client/item/routes.json +++ b/client/item/routes.json @@ -18,9 +18,18 @@ "state": "item.create", "component": "vn-item-create" }, { - "url": "/:id/data", - "state": "item.data", - "component": "vn-item-data" + "url": "/:id", + "state": "item.card", + "abstract": true, + "component": "vn-item-card" + }, { + "url" : "/data", + "state": "item.card.data", + "component": "vn-item-data", + "menu": { + "description": "Basic data", + "icon": "folder" + } } ] } \ No newline at end of file diff --git a/client/item/src/card/item-card.html b/client/item/src/card/item-card.html new file mode 100644 index 000000000..dc96049a8 --- /dev/null +++ b/client/item/src/card/item-card.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + diff --git a/client/item/src/card/item-card.js b/client/item/src/card/item-card.js new file mode 100644 index 000000000..0783bb6bd --- /dev/null +++ b/client/item/src/card/item-card.js @@ -0,0 +1,12 @@ +import ngModule from '../module'; + +class ItemCard { + constructor() { + this.item = {}; + } +} + +ngModule.component('vnItemCard', { + template: require('./item-card.html'), + controller: ItemCard +}); diff --git a/client/item/src/create/item-create.js b/client/item/src/create/item-create.js index 139822c44..7723370e1 100644 --- a/client/item/src/create/item-create.js +++ b/client/item/src/create/item-create.js @@ -7,7 +7,7 @@ class ItemCreate { onSubmit() { this.$.watcher.submit().then( - json => this.$state.go('item.data', {id: json.data.id}) + json => this.$state.go('item.card.basic', {id: json.data.id}) ); } } diff --git a/client/item/src/data/item-data.html b/client/item/src/data/item-data.html new file mode 100644 index 000000000..e69de29bb diff --git a/client/item/src/data/item-data.js b/client/item/src/data/item-data.js new file mode 100644 index 000000000..e69de29bb diff --git a/client/item/src/item.js b/client/item/src/item.js index 908f0e46f..6eed86e86 100644 --- a/client/item/src/item.js +++ b/client/item/src/item.js @@ -3,3 +3,4 @@ export * from './module'; import './list/list'; import './filter-panel/filter-panel'; import './create/item-create'; +import './card/item-card'; diff --git a/client/item/src/list/item-product.html b/client/item/src/list/item-product.html index 951eabfc5..9e8fc1417 100644 --- a/client/item/src/list/item-product.html +++ b/client/item/src/list/item-product.html @@ -1,14 +1,14 @@ - - - - - - -
Id: {{$ctrl.item.id}}
-
Category: {{$ctrl.item.category}}
-
Description: {{$ctrl.item.description}}
-
Size: {{$ctrl.item.size}}
-
Type: {{$ctrl.item.itemType.name}}
-
-
-
+ + + + + + +
Id: {{$ctrl.item.id}}
+
Category: {{$ctrl.item.category}}
+
Description: {{$ctrl.item.description}}
+
Size: {{$ctrl.item.size}}
+
Type: {{$ctrl.item.itemType.name}}
+
+
+ diff --git a/client/item/src/list/list.html b/client/item/src/list/list.html index 81f59b9ad..00f498d4e 100644 --- a/client/item/src/list/list.html +++ b/client/item/src/list/list.html @@ -14,7 +14,9 @@ - + + + diff --git a/client/item/src/list/style.css b/client/item/src/list/style.css index 476406982..ca53151b9 100644 --- a/client/item/src/list/style.css +++ b/client/item/src/list/style.css @@ -1,12 +1,12 @@ vn-item-product { display: block; } -vn-item-product a { +a.item-product-link { display: block; text-decoration: none; color: inherit; } -vn-item-product a:hover { +a.item-product-link:hover { color: white; background-color: #424242; } diff --git a/client/salix/src/styles/misc.scss b/client/salix/src/styles/misc.scss index ddfe20a05..6ee45820d 100644 --- a/client/salix/src/styles/misc.scss +++ b/client/salix/src/styles/misc.scss @@ -99,3 +99,16 @@ html [pointer], .pointer{ html [noDrop], .noDrop{ cursor: no-drop; } + +vn-main-block { + display:block; + max-width: 1920px; + width:100%; + margin: 0 auto; + + .left-block { + min-width: 18em; + padding-left: 1em; + padding-bottom: 1em; + } +} From 723a4143f6be996f291b29bda3569583016dfe3e Mon Sep 17 00:00:00 2001 From: Daniel Herrero Date: Thu, 21 Dec 2017 11:47:01 +0100 Subject: [PATCH 13/21] changed model name --- services/item/common/models/intrastat.json | 6 +++--- .../item/common/models/{tax-class.json => tax-group.json} | 4 ++-- services/item/server/model-config.json | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) rename services/item/common/models/{tax-class.json => tax-group.json} (86%) diff --git a/services/item/common/models/intrastat.json b/services/item/common/models/intrastat.json index 0ef5c5876..615c16a1e 100644 --- a/services/item/common/models/intrastat.json +++ b/services/item/common/models/intrastat.json @@ -18,10 +18,10 @@ } }, "relations": { - "taxClass": { + "taxGroup": { "type": "belongsTo", - "model": "TaxClass", - "foreignKey": "taxClassFk" + "model": "TaxGroup", + "foreignKey": "taxGroupFk" }, "taxCode": { "type": "belongsTo", diff --git a/services/item/common/models/tax-class.json b/services/item/common/models/tax-group.json similarity index 86% rename from services/item/common/models/tax-class.json rename to services/item/common/models/tax-group.json index c107f3391..e2fdd5a3b 100644 --- a/services/item/common/models/tax-class.json +++ b/services/item/common/models/tax-group.json @@ -1,9 +1,9 @@ { - "name": "TaxClass", + "name": "TaxGroup", "base": "VnModel", "options": { "mysql": { - "table": "taxClass", + "table": "taxGroup", "database": "vn" } }, diff --git a/services/item/server/model-config.json b/services/item/server/model-config.json index 43c9a80fe..9258f7f1c 100644 --- a/services/item/server/model-config.json +++ b/services/item/server/model-config.json @@ -42,7 +42,7 @@ "Intrastat": { "dataSource": "vn" }, - "TaxClass": { + "TaxGroup": { "dataSource": "vn" }, "TaxCode": { From 3fe9e3d325a9ec815ff31ba6723d3e815116b2cd Mon Sep 17 00:00:00 2001 From: Daniel Herrero Date: Thu, 21 Dec 2017 14:08:40 +0100 Subject: [PATCH 14/21] bug fixed in model item --- services/item/common/models/item.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/services/item/common/models/item.json b/services/item/common/models/item.json index 2ea6707b6..0e396c0bf 100644 --- a/services/item/common/models/item.json +++ b/services/item/common/models/item.json @@ -13,11 +13,14 @@ "id": true, "description": "Identifier" }, + "name": { + "type": "String" + }, "size": { "type": "Number" }, "category": { - "type": "Number" + "type": "String" }, "stems": { "type": "Number" From 862420e434aedd79c4170bf24ca913558407b040 Mon Sep 17 00:00:00 2001 From: Daniel Herrero Date: Thu, 21 Dec 2017 14:09:02 +0100 Subject: [PATCH 15/21] new generic function --- client/core/src/lib/fullEmpty.js | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 client/core/src/lib/fullEmpty.js diff --git a/client/core/src/lib/fullEmpty.js b/client/core/src/lib/fullEmpty.js new file mode 100644 index 000000000..64d82cdad --- /dev/null +++ b/client/core/src/lib/fullEmpty.js @@ -0,0 +1,9 @@ +import {module} from '../module'; + +const isFullEmpty = item => { + return (!item && item !== 0) || (typeof item === 'object' && !Object.keys(item).length); +}; + +export default isFullEmpty; +export const NAME = 'isFullEmpty'; +module.value(NAME, isFullEmpty); From 424f607063c67adc6c4c16fe7ff95702a250fefc Mon Sep 17 00:00:00 2001 From: Daniel Herrero Date: Thu, 21 Dec 2017 14:09:16 +0100 Subject: [PATCH 16/21] refactor watcher --- client/core/src/watcher/watcher.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/client/core/src/watcher/watcher.js b/client/core/src/watcher/watcher.js index d259f6f39..83012eca4 100644 --- a/client/core/src/watcher/watcher.js +++ b/client/core/src/watcher/watcher.js @@ -3,6 +3,7 @@ import Component from '../lib/component'; import getModifiedData from '../lib/modified'; import copyObject from '../lib/copy'; import isEqual from '../lib/equals'; +import isFullEmpty from '../lib/fullEmpty'; /** * Component that checks for changes on a specific model property and @@ -95,7 +96,7 @@ export default class Watcher extends Component { let changedData = getModifiedData(this.data, this.orgData); if (this.save) { - this.save.model = changedData; + this.save.model = this.copyInNewObject(changedData); return new Promise((resolve, reject) => { this.save.accept().then( json => this.writeData({data: json}, resolve), @@ -154,7 +155,7 @@ export default class Watcher extends Component { if (data && typeof data === 'object') { Object.keys(data).forEach( val => { - if (data[val] !== "" && data[val] !== undefined && data[val] !== null) { + if (!isFullEmpty(data[val])) { if (typeof data[val] === 'object') { newCopy[val] = this.copyInNewObject(data[val]); } else { From 9e44803c66d8257b15f4bf3ae04e8c96dbf4545b Mon Sep 17 00:00:00 2001 From: Daniel Herrero Date: Thu, 21 Dec 2017 14:09:55 +0100 Subject: [PATCH 17/21] New module Item in progress --- client/item/routes.json | 14 +++++ client/item/src/card/item-card.html | 12 ++-- client/item/src/card/item-card.js | 22 ++++++- client/item/src/create/item-create.html | 1 + client/item/src/data/item-data.html | 84 +++++++++++++++++++++++++ client/item/src/data/item-data.js | 8 +++ client/item/src/item.js | 1 + client/item/src/list/item-product.html | 2 +- client/salix/src/styles/misc.scss | 1 + 9 files changed, 135 insertions(+), 10 deletions(-) diff --git a/client/item/routes.json b/client/item/routes.json index 61197e499..e703ed1de 100644 --- a/client/item/routes.json +++ b/client/item/routes.json @@ -26,10 +26,24 @@ "url" : "/data", "state": "item.card.data", "component": "vn-item-data", + "params": { + "item": "$ctrl.item" + }, "menu": { "description": "Basic data", "icon": "folder" } + }, { + "url" : "/image", + "state": "item.card.image", + "component": "vn-item-image", + "params": { + "item": "$ctrl.item" + }, + "menu": { + "description": "Images", + "icon": "image" + } } ] } \ No newline at end of file diff --git a/client/item/src/card/item-card.html b/client/item/src/card/item-card.html index dc96049a8..179272d51 100644 --- a/client/item/src/card/item-card.html +++ b/client/item/src/card/item-card.html @@ -1,20 +1,16 @@ - - - - + + {{$ctrl.item.name}} + - + diff --git a/client/item/src/card/item-card.js b/client/item/src/card/item-card.js index 0783bb6bd..063910369 100644 --- a/client/item/src/card/item-card.js +++ b/client/item/src/card/item-card.js @@ -1,10 +1,30 @@ import ngModule from '../module'; class ItemCard { - constructor() { + constructor($http, $state) { + this.$http = $http; + this.$state = $state; this.item = {}; } + + $onInit() { + let filter = { + include: [ + {relation: "itemType"}, + {relation: "origin"}, + {relation: "ink"}, + {relation: "producer"}, + {relation: "intrastat"} + ] + }; + this.$http.get(`/item/api/Items/${this.$state.params.id}?filter=${JSON.stringify(filter)}`).then( + res => { + this.item = res.data; + } + ); + } } +ItemCard.$inject = ['$http', '$state']; ngModule.component('vnItemCard', { template: require('./item-card.html'), diff --git a/client/item/src/create/item-create.html b/client/item/src/create/item-create.html index bd3e3cce3..9e8b35e35 100644 --- a/client/item/src/create/item-create.html +++ b/client/item/src/create/item-create.html @@ -56,6 +56,7 @@ field="$ctrl.item.producerFk" > + diff --git a/client/item/src/data/item-data.html b/client/item/src/data/item-data.html index e69de29bb..17c64e329 100644 --- a/client/item/src/data/item-data.html +++ b/client/item/src/data/item-data.html @@ -0,0 +1,84 @@ + + + + + +
+ + + Basic data + + + + + + + + + + {{$parent.$parent.item.description}} + + + + + + + + + + + + + + + + + + + +
+ diff --git a/client/item/src/data/item-data.js b/client/item/src/data/item-data.js index e69de29bb..6046e8dbc 100644 --- a/client/item/src/data/item-data.js +++ b/client/item/src/data/item-data.js @@ -0,0 +1,8 @@ +import ngModule from '../module'; + +ngModule.component('vnItemData', { + template: require('./item-data.html'), + bindings: { + item: '<' + } +}); diff --git a/client/item/src/item.js b/client/item/src/item.js index 6eed86e86..9bdb719a3 100644 --- a/client/item/src/item.js +++ b/client/item/src/item.js @@ -4,3 +4,4 @@ import './list/list'; import './filter-panel/filter-panel'; import './create/item-create'; import './card/item-card'; +import './data/item-data'; diff --git a/client/item/src/list/item-product.html b/client/item/src/list/item-product.html index 9e8fc1417..f4fd431d1 100644 --- a/client/item/src/list/item-product.html +++ b/client/item/src/list/item-product.html @@ -5,7 +5,7 @@
Id: {{$ctrl.item.id}}
-
Category: {{$ctrl.item.category}}
+
Name: {{$ctrl.item.name}}
Description: {{$ctrl.item.description}}
Size: {{$ctrl.item.size}}
Type: {{$ctrl.item.itemType.name}}
diff --git a/client/salix/src/styles/misc.scss b/client/salix/src/styles/misc.scss index 6ee45820d..8d4fd271f 100644 --- a/client/salix/src/styles/misc.scss +++ b/client/salix/src/styles/misc.scss @@ -107,6 +107,7 @@ vn-main-block { margin: 0 auto; .left-block { + max-width: 20em; min-width: 18em; padding-left: 1em; padding-bottom: 1em; From e94d29f97b77755e2937e1a46921329c0a7b3fae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joan=20S=C3=A1nchez?= Date: Tue, 26 Dec 2017 10:02:47 +0100 Subject: [PATCH 18/21] =?UTF-8?q?Errores=20de=20renderizaci=C3=B3n=20im?= =?UTF-8?q?=C3=A1genes=20adjuntas.=20Escritos=20de=20cliente=20deutor.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- client/core/src/lib/app.js | 2 +- .../mailer/application/route/notification.js | 205 +++++++--- services/mailer/application/router.js | 18 + services/mailer/application/template.js | 15 +- .../template/client-welcome/client-welcome.js | 3 +- .../template/client-welcome/index.html | 1 + .../template/client-welcome/locale/es.json | 1 + .../client-welcome/{static/css => }/style.css | 0 .../template/default/image/download.svg | 4 + .../template/default/image/preview.svg | 4 + .../application/template/footer/footer.js | 3 +- .../footer/{static => }/image/action.png | Bin .../footer/{static => }/image/facebook.png | Bin .../footer/{static => }/image/header.png | Bin .../footer/{static => }/image/info.png | Bin .../footer/{static => }/image/instagram.png | Bin .../footer/{static => }/image/linkedin.png | Bin .../footer/{static => }/image/pinterest.png | Bin .../footer/{static => }/image/twitter.png | Bin .../footer/{static => }/image/youtube.png | Bin .../application/template/footer/index.html | 16 +- .../footer/{static/css => }/style.css | 0 .../application/template/header/header.js | 3 +- .../image/header.png => image/logo.png} | Bin .../application/template/header/index.html | 2 +- .../template/header/static/image/logo.png | Bin 8577 -> 0 bytes .../header/{static/css => }/style.css | 0 .../template/letter-debtor-nd/attachment.json | 1 + .../template/letter-debtor-nd/index.html | 87 ++++ .../letter-debtor-nd/letter-debtor-nd.js | 39 ++ .../template/letter-debtor-nd/locale/es.json | 18 + .../static/css => letter-debtor-nd}/style.css | 0 .../template/letter-debtor-st/attachment.json | 1 + .../template/letter-debtor-st/index.html | 69 ++++ .../letter-debtor-st/letter-debtor-st.js | 39 ++ .../template/letter-debtor-st/locale/es.json | 11 + .../static/css => letter-debtor-st}/style.css | 0 .../css => notification-alias}/style.css | 0 .../template/payment-update/payment-update.js | 6 +- .../static/css => payment-update}/style.css | 0 .../template/printer-setup/printer-setup.js | 10 +- .../template/printer-setup/style.css | 0 .../application/template/sepa-core/index.html | 21 +- .../template/sepa-core/sepa-core.js | 13 +- .../application/template/sepa-core/style.css | 0 services/mailer/server/server.js | 7 +- services/mailer/static/css/component.css | 356 ++++++++++------- services/mailer/static/images/attachment.png | Bin 18546 -> 0 bytes .../print/application/route/manuscript.js | 107 +++-- services/print/application/router.js | 19 + services/print/application/template.js | 33 +- .../template/footer}/image/action.png | Bin .../template/footer}/image/facebook.png | Bin .../template/footer}/image/info.png | Bin .../template/footer}/image/instagram.png | Bin .../template/footer}/image/linkedin.png | Bin .../template/footer}/image/pinterest.png | Bin .../template/footer}/image/twitter.png | Bin .../template/footer}/image/youtube.png | Bin .../template/footer/static/image/action.png | Bin 3225 -> 0 bytes .../template/footer/static/image/facebook.png | Bin 3586 -> 0 bytes .../template/footer/static/image/header.png | Bin 30712 -> 0 bytes .../template/footer/static/image/info.png | Bin 3045 -> 0 bytes .../footer/static/image/instagram.png | Bin 3719 -> 0 bytes .../template/footer/static/image/linkedin.png | Bin 3588 -> 0 bytes .../template/footer/static/image/logo.png | Bin 8577 -> 0 bytes .../template/footer/static/image/logo.svg | 48 --- .../footer/static/image/pinterest.png | Bin 3807 -> 0 bytes .../template/footer/static/image/twitter.png | Bin 3646 -> 0 bytes .../template/footer/static/image/youtube.png | Bin 3513 -> 0 bytes .../footer/{static/css => }/style.css | 1 + .../template/header}/image/logo.svg | 0 .../application/template/header/index.html | 2 +- .../template/header/static/image/action.png | Bin 3225 -> 0 bytes .../template/header/static/image/facebook.png | Bin 3586 -> 0 bytes .../template/header/static/image/header.png | Bin 30712 -> 0 bytes .../template/header/static/image/info.png | Bin 3045 -> 0 bytes .../header/static/image/instagram.png | Bin 3719 -> 0 bytes .../template/header/static/image/linkedin.png | Bin 3588 -> 0 bytes .../template/header/static/image/logo.png | Bin 8577 -> 0 bytes .../template/header/static/image/logo.svg | 48 --- .../header/static/image/pinterest.png | Bin 3807 -> 0 bytes .../template/header/static/image/twitter.png | Bin 3646 -> 0 bytes .../template/header/static/image/youtube.png | Bin 3513 -> 0 bytes .../header/{static/css => }/style.css | 0 .../template/letter-debtor/image}/action.png | Bin .../letter-debtor/image}/facebook.png | Bin .../template/letter-debtor/image}/header.png | Bin .../template/letter-debtor/image}/info.png | Bin .../letter-debtor/image}/instagram.png | Bin .../letter-debtor/image}/linkedin.png | Bin .../template/letter-debtor}/image/logo.png | Bin .../template/letter-debtor}/image/logo.svg | 0 .../letter-debtor/image}/pinterest.png | Bin .../template/letter-debtor/image}/twitter.png | Bin .../template/letter-debtor/image}/youtube.png | Bin .../template/letter-debtor/index.html | 84 ++++ .../template/letter-debtor/letter-debtor.js | 54 +++ .../template/letter-debtor/locale/es.json | 31 ++ .../static/css => letter-debtor}/style.css | 0 .../application/template/sepa-core/index.html | 4 +- .../template/sepa-core/sepa-core.js | 2 +- .../sepa-core/static/image/action.png | Bin 3225 -> 0 bytes .../sepa-core/static/image/facebook.png | Bin 3586 -> 0 bytes .../sepa-core/static/image/header.png | Bin 30712 -> 0 bytes .../template/sepa-core/static/image/info.png | Bin 3045 -> 0 bytes .../sepa-core/static/image/instagram.png | Bin 3719 -> 0 bytes .../sepa-core/static/image/linkedin.png | Bin 3588 -> 0 bytes .../template/sepa-core/static/image/logo.png | Bin 8577 -> 0 bytes .../template/sepa-core/static/image/logo.svg | 48 --- .../sepa-core/static/image/pinterest.png | Bin 3807 -> 0 bytes .../sepa-core/static/image/twitter.png | Bin 3646 -> 0 bytes .../sepa-core/static/image/youtube.png | Bin 3513 -> 0 bytes .../application/template/sepa-core/style.css | 22 ++ services/print/server/server.js | 7 +- services/print/static/css/component.css | 373 ++++++++++-------- 116 files changed, 1245 insertions(+), 593 deletions(-) rename services/mailer/application/template/client-welcome/{static/css => }/style.css (100%) create mode 100644 services/mailer/application/template/default/image/download.svg create mode 100644 services/mailer/application/template/default/image/preview.svg rename services/mailer/application/template/footer/{static => }/image/action.png (100%) rename services/mailer/application/template/footer/{static => }/image/facebook.png (100%) rename services/mailer/application/template/footer/{static => }/image/header.png (100%) rename services/mailer/application/template/footer/{static => }/image/info.png (100%) rename services/mailer/application/template/footer/{static => }/image/instagram.png (100%) rename services/mailer/application/template/footer/{static => }/image/linkedin.png (100%) rename services/mailer/application/template/footer/{static => }/image/pinterest.png (100%) rename services/mailer/application/template/footer/{static => }/image/twitter.png (100%) rename services/mailer/application/template/footer/{static => }/image/youtube.png (100%) rename services/mailer/application/template/footer/{static/css => }/style.css (100%) rename services/mailer/application/template/header/{static/image/header.png => image/logo.png} (100%) delete mode 100644 services/mailer/application/template/header/static/image/logo.png rename services/mailer/application/template/header/{static/css => }/style.css (100%) create mode 100644 services/mailer/application/template/letter-debtor-nd/attachment.json create mode 100644 services/mailer/application/template/letter-debtor-nd/index.html create mode 100644 services/mailer/application/template/letter-debtor-nd/letter-debtor-nd.js create mode 100644 services/mailer/application/template/letter-debtor-nd/locale/es.json rename services/mailer/application/template/{notification-alias/static/css => letter-debtor-nd}/style.css (100%) create mode 100644 services/mailer/application/template/letter-debtor-st/attachment.json create mode 100644 services/mailer/application/template/letter-debtor-st/index.html create mode 100644 services/mailer/application/template/letter-debtor-st/letter-debtor-st.js create mode 100644 services/mailer/application/template/letter-debtor-st/locale/es.json rename services/mailer/application/template/{payment-update/static/css => letter-debtor-st}/style.css (100%) rename services/mailer/application/template/{printer-setup/static/css => notification-alias}/style.css (100%) rename services/mailer/application/template/{sepa-core/static/css => payment-update}/style.css (100%) create mode 100644 services/mailer/application/template/printer-setup/style.css create mode 100644 services/mailer/application/template/sepa-core/style.css delete mode 100644 services/mailer/static/images/attachment.png rename services/{mailer/application/template/header/static => print/application/template/footer}/image/action.png (100%) rename services/{mailer/application/template/header/static => print/application/template/footer}/image/facebook.png (100%) rename services/{mailer/application/template/header/static => print/application/template/footer}/image/info.png (100%) rename services/{mailer/application/template/header/static => print/application/template/footer}/image/instagram.png (100%) rename services/{mailer/application/template/header/static => print/application/template/footer}/image/linkedin.png (100%) rename services/{mailer/application/template/header/static => print/application/template/footer}/image/pinterest.png (100%) rename services/{mailer/application/template/header/static => print/application/template/footer}/image/twitter.png (100%) rename services/{mailer/application/template/header/static => print/application/template/footer}/image/youtube.png (100%) delete mode 100644 services/print/application/template/footer/static/image/action.png delete mode 100644 services/print/application/template/footer/static/image/facebook.png delete mode 100644 services/print/application/template/footer/static/image/header.png delete mode 100644 services/print/application/template/footer/static/image/info.png delete mode 100644 services/print/application/template/footer/static/image/instagram.png delete mode 100644 services/print/application/template/footer/static/image/linkedin.png delete mode 100644 services/print/application/template/footer/static/image/logo.png delete mode 100644 services/print/application/template/footer/static/image/logo.svg delete mode 100644 services/print/application/template/footer/static/image/pinterest.png delete mode 100644 services/print/application/template/footer/static/image/twitter.png delete mode 100644 services/print/application/template/footer/static/image/youtube.png rename services/print/application/template/footer/{static/css => }/style.css (89%) rename services/{mailer/application/template/footer/static => print/application/template/header}/image/logo.svg (100%) delete mode 100644 services/print/application/template/header/static/image/action.png delete mode 100644 services/print/application/template/header/static/image/facebook.png delete mode 100644 services/print/application/template/header/static/image/header.png delete mode 100644 services/print/application/template/header/static/image/info.png delete mode 100644 services/print/application/template/header/static/image/instagram.png delete mode 100644 services/print/application/template/header/static/image/linkedin.png delete mode 100644 services/print/application/template/header/static/image/logo.png delete mode 100644 services/print/application/template/header/static/image/logo.svg delete mode 100644 services/print/application/template/header/static/image/pinterest.png delete mode 100644 services/print/application/template/header/static/image/twitter.png delete mode 100644 services/print/application/template/header/static/image/youtube.png rename services/print/application/template/header/{static/css => }/style.css (100%) rename services/{mailer/static/images => print/application/template/letter-debtor/image}/action.png (100%) rename services/{mailer/static/images => print/application/template/letter-debtor/image}/facebook.png (100%) rename services/{mailer/static/images => print/application/template/letter-debtor/image}/header.png (100%) rename services/{mailer/static/images => print/application/template/letter-debtor/image}/info.png (100%) rename services/{mailer/static/images => print/application/template/letter-debtor/image}/instagram.png (100%) rename services/{mailer/static/images => print/application/template/letter-debtor/image}/linkedin.png (100%) rename services/{mailer/application/template/footer/static => print/application/template/letter-debtor}/image/logo.png (100%) rename services/{mailer/application/template/header/static => print/application/template/letter-debtor}/image/logo.svg (100%) rename services/{mailer/static/images => print/application/template/letter-debtor/image}/pinterest.png (100%) rename services/{mailer/static/images => print/application/template/letter-debtor/image}/twitter.png (100%) rename services/{mailer/static/images => print/application/template/letter-debtor/image}/youtube.png (100%) create mode 100644 services/print/application/template/letter-debtor/index.html create mode 100644 services/print/application/template/letter-debtor/letter-debtor.js create mode 100644 services/print/application/template/letter-debtor/locale/es.json rename services/print/application/template/{sepa-core/static/css => letter-debtor}/style.css (100%) delete mode 100644 services/print/application/template/sepa-core/static/image/action.png delete mode 100644 services/print/application/template/sepa-core/static/image/facebook.png delete mode 100644 services/print/application/template/sepa-core/static/image/header.png delete mode 100644 services/print/application/template/sepa-core/static/image/info.png delete mode 100644 services/print/application/template/sepa-core/static/image/instagram.png delete mode 100644 services/print/application/template/sepa-core/static/image/linkedin.png delete mode 100644 services/print/application/template/sepa-core/static/image/logo.png delete mode 100644 services/print/application/template/sepa-core/static/image/logo.svg delete mode 100644 services/print/application/template/sepa-core/static/image/pinterest.png delete mode 100644 services/print/application/template/sepa-core/static/image/twitter.png delete mode 100644 services/print/application/template/sepa-core/static/image/youtube.png create mode 100644 services/print/application/template/sepa-core/style.css diff --git a/client/core/src/lib/app.js b/client/core/src/lib/app.js index 3b58309b4..5851357d8 100644 --- a/client/core/src/lib/app.js +++ b/client/core/src/lib/app.js @@ -12,7 +12,7 @@ export default class App { this.$rootScope = $rootScope; } show(message) { - if (this.snackbar) this.snackbar.show({message: message}); + if (this.snackbar) this.snackbar.show({message: message, timeout: 400}); } showMessage(message) { this.show(message); diff --git a/services/mailer/application/route/notification.js b/services/mailer/application/route/notification.js index bd7a81f11..810fbdf88 100644 --- a/services/mailer/application/route/notification.js +++ b/services/mailer/application/route/notification.js @@ -4,10 +4,15 @@ var config = require('../config.js'); var mail = require('../mail.js'); var template = require('../template.js'); var httpRequest = require('request'); +var auth = require('../auth.js'); +// Auth middleware +var requestToken = function(request, response, next) { + auth.init(request, response, next); +}; // Printer setup -router.post('/printer-setup/:clientId', function(request, response) { +router.get('/printer-setup/:clientId', requestToken, function(request, response) { mail.sendWithTemplate('printer-setup', {clientId: request.params.clientId}, error => { if (error) return response.status(400).json({message: error.message}); @@ -17,7 +22,7 @@ router.post('/printer-setup/:clientId', function(request, response) { }); // Printer setup preview -router.get('/printer-setup/:clientId', function(request, response) { +router.get('/printer-setup/:clientId/preview', requestToken, function(request, response) { template.get('printer-setup', {clientId: request.params.clientId, isPreview: true}, (error, result) => { if (error) return response.status(400).json({message: error.message}); @@ -27,7 +32,7 @@ router.get('/printer-setup/:clientId', function(request, response) { }); // Client welcome -router.post('/client-welcome/:clientId', function(request, response) { +router.get('/client-welcome/:clientId', requestToken, function(request, response) { mail.sendWithTemplate('client-welcome', {clientId: request.params.clientId}, error => { if (error) return response.status(400).json({message: error.message}); @@ -37,7 +42,7 @@ router.post('/client-welcome/:clientId', function(request, response) { }); // Client welcome preview -router.get('/client-welcome/:clientId', function(request, response) { +router.get('/client-welcome/:clientId/preview', requestToken, function(request, response) { template.get('client-welcome', {clientId: request.params.clientId, isPreview: true}, (error, result) => { if (error) return response.status(400).json({message: error.message}); @@ -47,8 +52,13 @@ router.get('/client-welcome/:clientId', function(request, response) { }); // Client SEPA CORE -router.post('/sepa-core/:clientId', function(request, response) { - let path = `${request.proxyHost}/print/manuscript/sepa-core/${request.params.clientId}`; +router.get('/sepa-core/:companyId/:clientId', requestToken, function(request, response) { + let params = { + clientId: request.params.clientId, + companyId: request.params.companyId + }; + + let path = `${request.proxyHost}/print/manuscript/sepa-core/${params.companyId}/${params.clientId}`; let options = { url: path, method: 'GET', @@ -59,25 +69,75 @@ router.post('/sepa-core/:clientId', function(request, response) { let httpStream = httpRequest(options, function(error, httpResponse, body) { if (error || httpResponse.statusCode != 200) - return response.status(400).json({message: error.message}); + return response.status(400).json({message: error}); }); if (httpStream) - mail.sendWithTemplate('sepa-core', { - clientId: request.params.clientId, - attachments: [{filename: 'sepa-core.pdf', content: httpStream}] - }, error => { - if (error) - return response.status(400).json({message: error.message}); - - return response.json(); + params.attachments = [{filename: 'sepa-core.pdf', content: httpStream}]; + + mail.sendWithTemplate('sepa-core', params, error => { + if (error) + return response.status(400).json({message: error.message}); + + return response.json(); }); }); // Client SEPA CORE preview -router.get('/sepa-core/:clientId', function(request, response) { - template.get('sepa-core', { +router.get('/sepa-core/:companyId/:clientId/preview', requestToken, function(request, response) { + let params = { + clientId: request.params.clientId, + companyId: request.params.companyId, + token: request.user.token, + isPreview: true + }; + + template.get('sepa-core', params, (error, result) => { + if (error) + return response.status(400).json({message: error.message}); + + response.send(result.body); + }); +}); + +// First debtor letter +router.get('/letter-debtor-st/:companyId/:clientId', requestToken, function(request, response) { + let params = { + clientId: request.params.clientId, + companyId: request.params.companyId, + token: request.user.token + }; + + let path = `${request.proxyHost}/print/manuscript/letter-debtor/${params.companyId}/${params.clientId}`; + let options = { + url: path, + method: 'GET', + headers: { + 'Authorization': request.headers.authorization + } + } + + let httpStream = httpRequest(options, function(error, httpResponse, body) { + if (error || httpResponse.statusCode != 200) + return response.status(400).json({message: error}); + }); + + if (httpStream) + params.attachments = [{filename: 'extracto.pdf', content: httpStream}]; + + mail.sendWithTemplate('letter-debtor-st', params, error => { + if (error) + return response.status(400).json({message: error.message}); + + return response.json(); + }); +}); + +// First debtor letter preview +router.get('/letter-debtor-st/:companyId/:clientId/preview', requestToken, function(request, response) { + template.get('letter-debtor-st', { clientId: request.params.clientId, + companyId: request.params.companyId, token: request.user.token, isPreview: true }, (error, result) => { @@ -88,6 +148,85 @@ router.get('/sepa-core/:clientId', function(request, response) { }); }); +// Second debtor letter +router.get('/letter-debtor-nd/:companyId/:clientId', requestToken, function(request, response) { + let params = { + clientId: request.params.clientId, + companyId: request.params.companyId, + token: request.user.token + }; + + let path = `${request.proxyHost}/print/manuscript/letter-debtor/${params.companyId}/${params.clientId}`; + let options = { + url: path, + method: 'GET', + headers: { + 'Authorization': request.headers.authorization + } + } + + let httpStream = httpRequest(options, function(error, httpResponse, body) { + if (error || httpResponse.statusCode != 200) + return response.status(400).json({message: error}); + }); + + if (httpStream) + params.attachments = [{filename: 'extracto.pdf', content: httpStream}]; + + mail.sendWithTemplate('letter-debtor-nd', params, error => { + if (error) + return response.status(400).json({message: error.message}); + + return response.json(); + }); +}); + +// Second debtor letter preview +router.get('/letter-debtor-nd/:companyId/:clientId/preview', requestToken, function(request, response) { + template.get('letter-debtor-nd', { + clientId: request.params.clientId, + companyId: request.params.companyId, + token: request.user.token, + isPreview: true + }, (error, result) => { + if (error) + return response.status(400).json({message: error.message}); + + response.send(result.body); + }); +}); + +// Payment method changes +router.get('/payment-update/:clientId', requestToken, function(request, response) { + mail.sendWithTemplate('payment-update', {clientId: request.params.clientId}, error => { + if (error) + return response.status(400).json({message: error.message}); + + return response.json(); + }); +}); + +// Send notification to alias creditInsurance on client deactivate +router.get('/client-deactivate/:clientId', requestToken, function(request, response) { + var params = { + alias: 'creditInsurance', + code: 'clientDeactivate', + bodyParams: { + clientId: request.params.clientId + } + }; + + mail.sendWithTemplate('notification-alias', params, error => { + if (error) + response.status(400).json({message: error.message}); + + return response.json(); + }); +}); + +module.exports = router; + + // Single user notification /* router.post('/:recipient/noticeUserSend', function(request, response) { var params = { @@ -146,34 +285,4 @@ router.get('/sepa-core/:clientId', function(request, response) { mail.sendWithTemplate('notification-notice', params, result => { return response.json(result); }); -}); */ - -// Payment method changes -router.post('/payment-update/:clientId', function(request, response) { - mail.sendWithTemplate('payment-update', {clientId: request.params.clientId}, error => { - if (error) - return response.status(400).json({message: error.message}); - - return response.json(); - }); -}); - -// Send notification to alias creditInsurance on client deactivate -router.post('/client-deactivate/:clientId', function(request, response) { - var params = { - alias: 'creditInsurance', - code: 'clientDeactivate', - bodyParams: { - clientId: request.params.clientId - } - }; - - mail.sendWithTemplate('notification-alias', params, error => { - if (error) - response.status(400).json({message: error.message}); - - return response.json(); - }); -}); - -module.exports = router; +}); */ \ No newline at end of file diff --git a/services/mailer/application/router.js b/services/mailer/application/router.js index ed5794bbe..161271820 100644 --- a/services/mailer/application/router.js +++ b/services/mailer/application/router.js @@ -1,5 +1,7 @@ var express = require('express'); var router = new express.Router(); +var fs = require('fs'); +var path = require('path'); // Mailer default page router.get('/', function(request, response) { @@ -9,4 +11,20 @@ router.get('/', function(request, response) { // Notifications router.use('/notification', require('./route/notification.js')); +// Serve static images +router.use('/static/:template/:image', function(request, response) { + let imagePath = path.join(__dirname, '/template/', request.params.template, '/image/', request.params.image); + + fs.stat(imagePath, function(error) { + if (error) + return response.json({message: 'Image not found'}); + + let readStream = fs.createReadStream(imagePath); + + readStream.on('open', function() { + readStream.pipe(response); + }); + }); +}); + module.exports = router; diff --git a/services/mailer/application/template.js b/services/mailer/application/template.js index d2c13f222..1e9c92fde 100644 --- a/services/mailer/application/template.js +++ b/services/mailer/application/template.js @@ -15,7 +15,7 @@ module.exports = { get: function(template, params, cb) { var templatePath = path.join(__dirname, 'template', `${template}`, `index.html`); var classPath = path.join(__dirname, 'template', `${template}`, `${template}.js`); - var stylePath = path.join(__dirname, 'template', `${template}`, 'static', 'css', 'style.css'); + var stylePath = path.join(__dirname, 'template', `${template}`, 'style.css'); fs.stat(templatePath, (error, stat) => { if (error) @@ -65,6 +65,8 @@ module.exports = { return cb(error); instance._ = result.locale; + instance.isPreview = params.isPreview; + getDataCb(null, result); }); }); @@ -173,14 +175,17 @@ module.exports = { // Template default attachments for (var i = 0; i < tplAttachments.length; i++) { - let name = tplAttachments[i].replace('src="cid:', '').replace('"', ''); + let src = tplAttachments[i].replace('src="cid:', '').replace('"', '').split('/'); + let attachmentTpl = src[0]; + let attachment = src[1]; if (isPreview) { - let attachmentPath = `/mailer/static/images/${name}`; + let attachmentPath = `/mailer/static/${attachmentTpl}/${attachment}`; body = body.replace(tplAttachments[i], `src="${attachmentPath}"`); } else { - let attachmentPath = path.join(__dirname, '../static', 'images', name); - attachments.push({filename: name, path: attachmentPath, cid: name}); + let attachmentPath = path.join(__dirname, 'template', `${attachmentTpl}`, 'image', attachment); + let attachmentName = attachmentTpl + '/' + attachment; + attachments.push({filename: attachmentName, path: attachmentPath, cid: attachmentName}); } } diff --git a/services/mailer/application/template/client-welcome/client-welcome.js b/services/mailer/application/template/client-welcome/client-welcome.js index 469e74386..7cf435d0e 100644 --- a/services/mailer/application/template/client-welcome/client-welcome.js +++ b/services/mailer/application/template/client-welcome/client-welcome.js @@ -14,10 +14,11 @@ module.exports = class ClientWelcome { c.email recipient FROM client c JOIN account.user u ON u.id = c.id - LEFT JOIN worker w ON w.id = c.workerFk + LEFT JOIN worker w ON w.id = c.salesPersonFk LEFT JOIN account.user wu ON wu.id = w.userFk JOIN country ct ON ct.id = c.countryFk WHERE c.id = ?`; + database.pool.query(query, [params.clientId], (error, result) => { if (error || result.length == 0) return cb(new Error('No template data found')); diff --git a/services/mailer/application/template/client-welcome/index.html b/services/mailer/application/template/client-welcome/index.html index a8a711c8e..2c778bee8 100644 --- a/services/mailer/application/template/client-welcome/index.html +++ b/services/mailer/application/template/client-welcome/index.html @@ -22,6 +22,7 @@

{{_.dear}}

{{{_.bodyDescription}}}

+

{{_.clientNumber}} {{clientId}}
{{_.user}} {{userName}}
{{_.password}} ******** {{_.passwordResetText}}

diff --git a/services/mailer/application/template/client-welcome/locale/es.json b/services/mailer/application/template/client-welcome/locale/es.json index b1149d62b..e7dce623c 100644 --- a/services/mailer/application/template/client-welcome/locale/es.json +++ b/services/mailer/application/template/client-welcome/locale/es.json @@ -3,6 +3,7 @@ "title": "¡LE DAMOS LA BIENVENIDA!", "dear": "Estimado cliente,", "bodyDescription": "Sus datos para poder comprar en la web de verdnatura (https://www.verdnatura.es) o en nuestras aplicaciones para iOS y Android (Ver tutorial de uso), son:", + "clientNumber": "Identificador de cliente:", "user": "Usuario:", "password": "Contraseña:", "passwordResetText": "(Va a recibir un correo para establecer la contraseña)", diff --git a/services/mailer/application/template/client-welcome/static/css/style.css b/services/mailer/application/template/client-welcome/style.css similarity index 100% rename from services/mailer/application/template/client-welcome/static/css/style.css rename to services/mailer/application/template/client-welcome/style.css diff --git a/services/mailer/application/template/default/image/download.svg b/services/mailer/application/template/default/image/download.svg new file mode 100644 index 000000000..b05bc05c8 --- /dev/null +++ b/services/mailer/application/template/default/image/download.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/services/mailer/application/template/default/image/preview.svg b/services/mailer/application/template/default/image/preview.svg new file mode 100644 index 000000000..09a2a6bca --- /dev/null +++ b/services/mailer/application/template/default/image/preview.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/services/mailer/application/template/footer/footer.js b/services/mailer/application/template/footer/footer.js index 3b4020bf4..555e70b10 100644 --- a/services/mailer/application/template/footer/footer.js +++ b/services/mailer/application/template/footer/footer.js @@ -5,7 +5,8 @@ var format = require(path.join(__dirname, '../../util/format.js')); module.exports = class Footer { getData(params, cb) { let query = `SELECT - socialName + socialName, + LOWER(ct.code) countryCode FROM client c JOIN country ct ON ct.id = c.countryFk WHERE c.id = ?`; diff --git a/services/mailer/application/template/footer/static/image/action.png b/services/mailer/application/template/footer/image/action.png similarity index 100% rename from services/mailer/application/template/footer/static/image/action.png rename to services/mailer/application/template/footer/image/action.png diff --git a/services/mailer/application/template/footer/static/image/facebook.png b/services/mailer/application/template/footer/image/facebook.png similarity index 100% rename from services/mailer/application/template/footer/static/image/facebook.png rename to services/mailer/application/template/footer/image/facebook.png diff --git a/services/mailer/application/template/footer/static/image/header.png b/services/mailer/application/template/footer/image/header.png similarity index 100% rename from services/mailer/application/template/footer/static/image/header.png rename to services/mailer/application/template/footer/image/header.png diff --git a/services/mailer/application/template/footer/static/image/info.png b/services/mailer/application/template/footer/image/info.png similarity index 100% rename from services/mailer/application/template/footer/static/image/info.png rename to services/mailer/application/template/footer/image/info.png diff --git a/services/mailer/application/template/footer/static/image/instagram.png b/services/mailer/application/template/footer/image/instagram.png similarity index 100% rename from services/mailer/application/template/footer/static/image/instagram.png rename to services/mailer/application/template/footer/image/instagram.png diff --git a/services/mailer/application/template/footer/static/image/linkedin.png b/services/mailer/application/template/footer/image/linkedin.png similarity index 100% rename from services/mailer/application/template/footer/static/image/linkedin.png rename to services/mailer/application/template/footer/image/linkedin.png diff --git a/services/mailer/application/template/footer/static/image/pinterest.png b/services/mailer/application/template/footer/image/pinterest.png similarity index 100% rename from services/mailer/application/template/footer/static/image/pinterest.png rename to services/mailer/application/template/footer/image/pinterest.png diff --git a/services/mailer/application/template/footer/static/image/twitter.png b/services/mailer/application/template/footer/image/twitter.png similarity index 100% rename from services/mailer/application/template/footer/static/image/twitter.png rename to services/mailer/application/template/footer/image/twitter.png diff --git a/services/mailer/application/template/footer/static/image/youtube.png b/services/mailer/application/template/footer/image/youtube.png similarity index 100% rename from services/mailer/application/template/footer/static/image/youtube.png rename to services/mailer/application/template/footer/image/youtube.png diff --git a/services/mailer/application/template/footer/index.html b/services/mailer/application/template/footer/index.html index e52f7a695..484f5c2b8 100644 --- a/services/mailer/application/template/footer/index.html +++ b/services/mailer/application/template/footer/index.html @@ -2,10 +2,10 @@ @@ -13,22 +13,22 @@ diff --git a/services/mailer/application/template/footer/static/css/style.css b/services/mailer/application/template/footer/style.css similarity index 100% rename from services/mailer/application/template/footer/static/css/style.css rename to services/mailer/application/template/footer/style.css diff --git a/services/mailer/application/template/header/header.js b/services/mailer/application/template/header/header.js index 82c78e003..a6d1d6194 100644 --- a/services/mailer/application/template/header/header.js +++ b/services/mailer/application/template/header/header.js @@ -5,7 +5,8 @@ var format = require(path.join(__dirname, '../../util/format.js')); module.exports = class Header { getData(params, cb) { let query = `SELECT - c.name AS clientName + c.name AS clientName, + LOWER(ct.code) countryCode FROM client c JOIN country ct ON ct.id = c.countryFk WHERE c.id = ?`; diff --git a/services/mailer/application/template/header/static/image/header.png b/services/mailer/application/template/header/image/logo.png similarity index 100% rename from services/mailer/application/template/header/static/image/header.png rename to services/mailer/application/template/header/image/logo.png diff --git a/services/mailer/application/template/header/index.html b/services/mailer/application/template/header/index.html index c5234bbc8..6e4fcf8a4 100644 --- a/services/mailer/application/template/header/index.html +++ b/services/mailer/application/template/header/index.html @@ -1,3 +1,3 @@
- VerdNatura + VerdNatura
diff --git a/services/mailer/application/template/header/static/image/logo.png b/services/mailer/application/template/header/static/image/logo.png deleted file mode 100644 index 55e26fec6d6a2abff506862b1f851e1554f603c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8577 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 + + + {{_.subject}} + + + +
+
+ + {{$.header}} + + + +
+

{{_.title}}

+
+ + + +
+

{{_.dear}}

+ +

{{_.bodyDescription}}

+

{{_.termLimits}}

+

+ {{_.payMethod}} + +

    +
  1. {{_.payMethodOption1}}
  2. +
  3. {{_.payMethodOption2}}
  4. +
+

+

+ {{_.legalActions}} +

    +
  1. {{_.legalActionsOption1}}
  2. +
  3. {{_.legalActionsOption2}}
  4. +
  5. {{_.legalActionsOption3}}
  6. +
+

+ +

{{_.contact}}

+ +

{{_.waitingForNews}}

+

{{_.conclusion}}

+ +

+

+
{{bankName}}
+
{{iban}}
+
+
{{_.accountTransferData}}
+
+
+

+ + {{#isPreview}} + +
+
+ Ver adjunto +
+ Ver adjunto +
+
+ + +
+
+ Descargar adjunto +
+ Descargar PDF +
+
+ {{/isPreview}} +
+ + + + + {{$.footer}} + +
+
+ + \ No newline at end of file diff --git a/services/mailer/application/template/letter-debtor-nd/letter-debtor-nd.js b/services/mailer/application/template/letter-debtor-nd/letter-debtor-nd.js new file mode 100644 index 000000000..be0f996e1 --- /dev/null +++ b/services/mailer/application/template/letter-debtor-nd/letter-debtor-nd.js @@ -0,0 +1,39 @@ +var path = require('path'); +var database = require(path.join(__dirname, '../../database.js')); +var format = require(path.join(__dirname, '../../util/format.js')); + +module.exports = class LetterDebtorNd { + getData(params, cb) { + let query = `SELECT + sa.iban, + be.name AS bankName, + LOWER(ct.code) countryCode, + c.email recipient + FROM client c + JOIN company AS cny + JOIN supplierAccount AS sa ON sa.id = cny.supplierAccountFk + JOIN bankEntity be ON be.id = sa.bankEntityFk + JOIN country ct ON ct.id = c.countryFk + WHERE c.id = ? AND cny.id = ?`; + + this.clientId = params.clientId; + this.companyId = params.companyId; + this.token = params.token; + + database.pool.query(query, [params.clientId, params.companyId], (error, result) => { + if (error || result.length == 0) + return cb(new Error('No template data found')); + + Object.assign(this, result[0]); + + cb(); + }); + } + + get previewAttachments() { + if (this.isPreview) + return `` + + '
Descargar adjunto
' + + 'extracto.pdf
'; + } +}; diff --git a/services/mailer/application/template/letter-debtor-nd/locale/es.json b/services/mailer/application/template/letter-debtor-nd/locale/es.json new file mode 100644 index 000000000..1f8790eba --- /dev/null +++ b/services/mailer/application/template/letter-debtor-nd/locale/es.json @@ -0,0 +1,18 @@ +{ + "subject": "Reiteración de aviso por saldo deudor", + "title": "AVISO REITERADO", + "dear": "Estimado cliente,", + "bodyDescription": "Nos dirigimos a Vd. nuevamente para informarle que sigue pendiente su deuda con nuestra empresa, tal y como puede comprobar en el extracto adjunto.", + "termLimits": "Dado que los plazos de pago acordados están ampliamente superados, no procede mayor dilación en la liquidación del importe adeudado.", + "payMethod": "Para ello dispone de las siguientes formas de pago:", + "payMethodOption1": "Pago online desde nuestra web", + "payMethodOption2": "Ingreso o transferencia al número de cuenta que detallamos al pie de esta carta, indicando el número de cliente.", + "legalActions": "En caso de no ser atendido este apremio de pago, nos veremos obligados a iniciar las acciones legales que procedan, entre las que están:", + "legalActionsOption1": "Inclusión en ficheros negativos sobre solvencia patrimonial y crédito.", + "legalActionsOption2": "Reclamación judicial", + "legalActionsOption3": "Cesión de deuda a una empresa de gestión de cobro", + "contact": "Para consultas, puede ponerse en contacto con nosotros en el 96 324 21 00.", + "waitingForNews": "En espera de sus noticias", + "conclusion": "Gracias por su atención.", + "accountTransferData": "Datos para transferencia bancaria" +} \ No newline at end of file diff --git a/services/mailer/application/template/notification-alias/static/css/style.css b/services/mailer/application/template/letter-debtor-nd/style.css similarity index 100% rename from services/mailer/application/template/notification-alias/static/css/style.css rename to services/mailer/application/template/letter-debtor-nd/style.css diff --git a/services/mailer/application/template/letter-debtor-st/attachment.json b/services/mailer/application/template/letter-debtor-st/attachment.json new file mode 100644 index 000000000..0637a088a --- /dev/null +++ b/services/mailer/application/template/letter-debtor-st/attachment.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/services/mailer/application/template/letter-debtor-st/index.html b/services/mailer/application/template/letter-debtor-st/index.html new file mode 100644 index 000000000..a3b07e677 --- /dev/null +++ b/services/mailer/application/template/letter-debtor-st/index.html @@ -0,0 +1,69 @@ + + + + {{_.subject}} + + + +
+
+ + {{$.header}} + + + +
+

{{_.title}}

+
+ + + +
+

{{_.dear}}

+ +

{{_.bodyDescription}}

+

{{_.viewExtract}}

+

{{_.validData}}

+

{{_.payMethod}}

+

{{_.conclusion}}

+ +

+

+
{{bankName}}
+
{{iban}}
+
+
{{_.accountTransferData}}
+
+
+

+ + {{#isPreview}} + +
+
+ Ver adjunto +
+ Ver adjunto +
+
+ + +
+
+ Descargar adjunto +
+ Descargar PDF +
+
+ {{/isPreview}} +
+ + + + + {{$.footer}} + +
+
+ + \ No newline at end of file diff --git a/services/mailer/application/template/letter-debtor-st/letter-debtor-st.js b/services/mailer/application/template/letter-debtor-st/letter-debtor-st.js new file mode 100644 index 000000000..43ccb7a25 --- /dev/null +++ b/services/mailer/application/template/letter-debtor-st/letter-debtor-st.js @@ -0,0 +1,39 @@ +var path = require('path'); +var database = require(path.join(__dirname, '../../database.js')); +var format = require(path.join(__dirname, '../../util/format.js')); + +module.exports = class LetterDebtorSt { + getData(params, cb) { + let query = `SELECT + sa.iban, + be.name AS bankName, + LOWER(ct.code) countryCode, + c.email recipient + FROM client c + JOIN company AS cny + JOIN supplierAccount AS sa ON sa.id = cny.supplierAccountFk + JOIN bankEntity be ON be.id = sa.bankEntityFk + JOIN country ct ON ct.id = c.countryFk + WHERE c.id = ? AND cny.id = ?`; + + this.clientId = params.clientId; + this.companyId = params.companyId; + this.token = params.token; + + database.pool.query(query, [params.clientId, params.companyId], (error, result) => { + if (error || result.length == 0) + return cb(new Error('No template data found')); + + Object.assign(this, result[0]); + + cb(); + }); + } + + get previewAttachments() { + if (this.isPreview) + return `` + + '
Descargar adjunto
' + + 'extracto.pdf
'; + } +}; diff --git a/services/mailer/application/template/letter-debtor-st/locale/es.json b/services/mailer/application/template/letter-debtor-st/locale/es.json new file mode 100644 index 000000000..558b18753 --- /dev/null +++ b/services/mailer/application/template/letter-debtor-st/locale/es.json @@ -0,0 +1,11 @@ +{ + "subject": "Aviso inicial por saldo deudor", + "title": "AVISO INICIAL", + "dear": "Estimado cliente,", + "bodyDescription": "Por el presente escrito le comunicamos que, según nuestros datos contables, su cuenta tiene un saldo pendiente de liquidar.", + "viewExtract": "Le solicitamos compruebe que el extracto adjunto corresponde con los datos de que Vd. dispone. Nuestro departamento de administración le aclarará gustosamente cualquier duda que pueda tener, e igualmente le facilitará cualquier documento que solicite.", + "validData": "Si al comprobar los datos aportados resultaran correctos, le rogamos proceda a regularizar su situación.", + "payMethod": "Si no desea desplazarse personalmente hasta nuestras oficinas, puede realizar el pago mediante transferencia bancaria a la cuenta que figura al pie del comunicado, indicando su número de cliente, o bien puede realizar el pago online desde nuestra página web.", + "conclusion": "De antemano le agradecemos su amable colaboración.", + "accountTransferData": "Datos para transferencia bancaria" +} \ No newline at end of file diff --git a/services/mailer/application/template/payment-update/static/css/style.css b/services/mailer/application/template/letter-debtor-st/style.css similarity index 100% rename from services/mailer/application/template/payment-update/static/css/style.css rename to services/mailer/application/template/letter-debtor-st/style.css diff --git a/services/mailer/application/template/printer-setup/static/css/style.css b/services/mailer/application/template/notification-alias/style.css similarity index 100% rename from services/mailer/application/template/printer-setup/static/css/style.css rename to services/mailer/application/template/notification-alias/style.css diff --git a/services/mailer/application/template/payment-update/payment-update.js b/services/mailer/application/template/payment-update/payment-update.js index 187d21b73..8a5a3b45b 100644 --- a/services/mailer/application/template/payment-update/payment-update.js +++ b/services/mailer/application/template/payment-update/payment-update.js @@ -4,8 +4,7 @@ var format = require(path.join(__dirname, '../../util/format.js')); module.exports = class PaymentUpdate { getData(params, cb) { - let query = `SELECT - c.id clientId, + let query = `SELECT pm.id payMethodFk, pm.name payMethodName, c.dueDay, @@ -16,6 +15,9 @@ module.exports = class PaymentUpdate { JOIN payMethod pm ON pm.id = c.paymentMethodFk JOIN country ct ON ct.id = c.countryFk WHERE c.id = ?`; + + this.clientId = params.clientId; + database.pool.query(query, [params.clientId], (error, result) => { if (error || result.length == 0) return cb(new Error('No template data found')); diff --git a/services/mailer/application/template/sepa-core/static/css/style.css b/services/mailer/application/template/payment-update/style.css similarity index 100% rename from services/mailer/application/template/sepa-core/static/css/style.css rename to services/mailer/application/template/payment-update/style.css diff --git a/services/mailer/application/template/printer-setup/printer-setup.js b/services/mailer/application/template/printer-setup/printer-setup.js index 6dece0d23..d17add406 100644 --- a/services/mailer/application/template/printer-setup/printer-setup.js +++ b/services/mailer/application/template/printer-setup/printer-setup.js @@ -4,19 +4,21 @@ var format = require(path.join(__dirname, '../../util/format.js')); module.exports = class PrinterSetup { getData(params, cb) { - let query = `SELECT - c.id clientId, + let query = `SELECT CONCAT(w.name, ' ', w.firstName) name, w.phone AS phone, CONCAT(u.name, '@verdnatura.es') AS email, LOWER(ct.code) countryCode, c.email recipient FROM client c - LEFT JOIN worker w ON w.id = c.workerFk + LEFT JOIN worker w ON w.id = c.salesPersonFk LEFT JOIN account.user u ON u.id = w.userFk JOIN country ct ON ct.id = c.countryFk WHERE c.id = ?`; - + + this.clientId = params.clientId; + this.isPreview = params.isPreview; + database.pool.query(query, [params.clientId], (error, result) => { if (error || result.length == 0) return cb(new Error('No template data found')); diff --git a/services/mailer/application/template/printer-setup/style.css b/services/mailer/application/template/printer-setup/style.css new file mode 100644 index 000000000..e69de29bb diff --git a/services/mailer/application/template/sepa-core/index.html b/services/mailer/application/template/sepa-core/index.html index 0e9c34d04..1acdae3fc 100644 --- a/services/mailer/application/template/sepa-core/index.html +++ b/services/mailer/application/template/sepa-core/index.html @@ -22,7 +22,26 @@

{{_.dear}}

{{_.bodyDescription}}

{{_.conclusion}}

- {{{previewAttachments}}} + + {{#isPreview}} + +
+
+ Ver adjunto +
+ Ver adjunto +
+
+ + +
+
+ Descargar adjunto +
+ Descargar PDF +
+
+ {{/isPreview}} diff --git a/services/mailer/application/template/sepa-core/sepa-core.js b/services/mailer/application/template/sepa-core/sepa-core.js index 04fd71df7..ec19dd29b 100644 --- a/services/mailer/application/template/sepa-core/sepa-core.js +++ b/services/mailer/application/template/sepa-core/sepa-core.js @@ -5,19 +5,19 @@ var format = require(path.join(__dirname, '../../util/format.js')); module.exports = class SepaCore { getData(params, cb) { let query = `SELECT - c.id clientId, CONCAT(w.name, ' ', w.firstName) name, w.phone AS phone, CONCAT(u.name, '@verdnatura.es') AS email, LOWER(ct.code) countryCode, c.email recipient FROM client c - LEFT JOIN worker w ON w.id = c.workerFk + LEFT JOIN worker w ON w.id = c.salesPersonFk LEFT JOIN account.user u ON u.id = w.userFk JOIN country ct ON ct.id = c.countryFk WHERE c.id = ?`; - this.isPreview = params.isPreview; + this.clientId = params.clientId; + this.companyId = params.companyId; this.token = params.token; database.pool.query(query, [params.clientId], (error, result) => { @@ -29,11 +29,4 @@ module.exports = class SepaCore { cb(); }); } - - get previewAttachments() { - if (this.isPreview) - return `` + - '
Descargar adjunto
' + - 'sepa-core.pdf
'; - } }; diff --git a/services/mailer/application/template/sepa-core/style.css b/services/mailer/application/template/sepa-core/style.css new file mode 100644 index 000000000..e69de29bb diff --git a/services/mailer/server/server.js b/services/mailer/server/server.js index 50320a391..457a61ddf 100644 --- a/services/mailer/server/server.js +++ b/services/mailer/server/server.js @@ -13,13 +13,8 @@ app.use(bodyParser.urlencoded({extended: true})); app.use('/static', express.static(path.join(__dirname, '../static'))); -// Auth middleware -var requestToken = function(request, response, next) { - auth.init(request, response, next); -}; - // Load routes -app.use('/', requestToken, require('../application/router.js')); +app.use('/', require('../application/router.js')); app.start = function() { var listener = app.listen(config.app.port, function() { diff --git a/services/mailer/static/css/component.css b/services/mailer/static/css/component.css index 10805e562..b4c018d79 100644 --- a/services/mailer/static/css/component.css +++ b/services/mailer/static/css/component.css @@ -1,137 +1,221 @@ -img { - margin: 0 -} - -p { - text-align: justify -} - -.wrapper { - background-color: #EEE -} - -.container { - font-family: arial, sans-serif; - max-width: 600px; - min-width: 320px; - font-size: 16px; - margin: 0 auto; - color: #555 -} - -.title { - background-color: #95d831; - text-align: center; - padding: 35px 0 -} - -.title h1 { - font-size: 32px; - color: #333; - margin: 0 -} - -.body { - background-color:#FFF; - padding: 20px -} - -.body a { - color: #8dba25 -} - -.body h1 { - color: #999 -} - -.body h3 { - font-size: 16px -} - -.panel { - border: 1px solid #DDD; - margin-bottom: 10px; - padding:10px -} - -.row { - margin-bottom: 15px; - overflow: hidden; - content: ''; - clear: both -} - -.row .text { - margin-bottom: 5px -} - -.row .control { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box -} - -.row .description { - font-size: 8px; - color: #999 -} - -.row .v-align { - padding-top: 5px; - line-height: 21px -} - -.row:last-child { - margin-bottom: 0 -} - -.row.inline .text { - margin-bottom: 0; - width: 40%; - float: left -} - -.row.inline .control { - font-weight: bold; - padding-left: 20px; - color: #000; - width: 60%; - float: left -} - -.box { - border-top: 1px solid #CCC; - border-right: 1px solid #CCC; - border-bottom: 1px solid #CCC; - font-weight: bold; - text-align: center; - padding-top: 4px; - width: 25px; - height: 21px; - color: #000; - float: left -} - -.row .control .box:first-child { - border-left: 1px solid #CCC; -} - -.attachment { - overflow: hidden; - margin-top: 10px -} - -.attachment:after { - content: ' '; - display: block; - clear: both -} - -.attachment-icon { - float: left -} - -.attachment span { - padding: 16px 0 0 10px; - float: left +body { + padding: 0; + margin: 0 +} + +img { + margin: 0 +} + +p { + text-align: justify +} + +.wrapper { + background-color: #EEE +} + +.container { + font-family: arial, sans-serif; + max-width: 600px; + min-width: 320px; + font-size: 16px; + margin: 0 auto; + color: #555 +} + +.title { + background-color: #95d831; + text-align: center; + padding: 35px 0 +} + +.title h1 { + font-size: 32px; + color: #333; + margin: 0 +} + +.body { + background-color:#FFF; + padding: 20px +} + +.body a { + color: #8dba25 +} + +.body h1 { + color: #999 +} + +.body h3 { + font-size: 16px +} + +.panel { + border: 1px solid #DDD; + margin-bottom: 10px; + position: relative; + padding:10px +} + +.row { + margin-bottom: 15px; + overflow: hidden +} + +.row .text { + margin-bottom: 5px +} + +.row .control { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box +} + +.row .text, .row .control { + overflow: hidden +} + +.row .description { + position: relative; + padding-top: 2px; + overflow: hidden; + font-size: 11px; + display: block; + color: #999 +} + +.row .line { + border-bottom: 1px solid #DDD; + border-right: 1px solid #DDD; + border-left: 1px solid #DDD; + margin-top: 10px; + color: #999; + padding: 5px +} + +.row .description span { + background-color: #FFF; + margin: -5px 0 0 50px; + display: block; + padding: 5px; + float: left +} + +.row:last-child { + margin-bottom: 0 +} + +.row.inline .text { + margin-bottom: 0; + width: 40%; + float: left +} + +.row.inline .control { + font-weight: bold; + padding-left: 20px; + color: #000; + width: 60%; + float: left +} + +.row.inline .description { + position: static; + overflow: visible +} + +.box { + border-top: 1px solid #CCC; + border-right: 1px solid #CCC; + border-bottom: 1px solid #CCC; + font-weight: bold; + text-align: center; + padding-top: 4px; + width: 25px; + height: 21px; + color: #000; + float: left +} + +.box.crossed { + font-weight: 100; + font-size: 16px +} + +.row .control .box:first-child { + border-left: 1px solid #CCC; +} + +.font.small { + font-size: 10px +} + +.font.verticalAlign { + height: 27px; + line-height: 27px +} + +.font.centered { + height: 27px; + line-height: 27px; + text-align: center +} + +.verticalText { + -moz-transform: rotate(90deg); + -webkit-transform: rotate(90deg); + transform: rotate(90deg); + position: absolute; + text-align: center; + font-size: .65em; + width: 200px; + right: -115px; + top: 50% +} + +.attachment { + overflow: hidden; + margin-top: 10px +} + +.attachment-icon { + float: left +} + +.attachment span { + padding: 16px 0 0 10px; + float: left +} + +.columns { + overflow: hidden +} + +.columns .size100 { + width: 100%; + float: left +} + +.columns .size75 { + width: 75%; + float: left +} + +.columns .size50 { + width: 50%; + float: left +} + +.columns .size33 { + width: 33.33%; + float: left +} + +.columns .size25 { + width: 25%; + float: left } \ No newline at end of file diff --git a/services/mailer/static/images/attachment.png b/services/mailer/static/images/attachment.png deleted file mode 100644 index 78efe4f95c69f9c03a08c93b4849d253ff1b3047..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18546 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 diff --git a/services/print/application/route/manuscript.js b/services/print/application/route/manuscript.js index 90662b646..091ffa4c3 100644 --- a/services/print/application/route/manuscript.js +++ b/services/print/application/route/manuscript.js @@ -4,22 +4,93 @@ var template = require('../template.js'); var config = require('../config.js'); var pdf = require('html-pdf'); var path = require('path'); +var auth = require('../auth.js'); + +// Auth middleware +var requestToken = function(request, response, next) { + auth.init(request, response, next); +}; // Sepa core -router.post('/sepa-core/:clientId', function(request, response, next) { - template.get('sepa-core', {clientId: request.params.clientId}, (error, result) => { +router.get('/sepa-core/:companyId/:clientId', requestToken, function(request, response, next) { + let params = { + clientId: request.params.clientId, + companyId: request.params.companyId + }; + + template.get('sepa-core', params, (error, result) => { if (error) return response.status(400).json({message: error.message}); - pdf.create(result.body).toStream(function(error, stream) { + pdf.create(result.body, config.pdf).toStream(function(error, stream) { if (error) throw Error(error); + response.setHeader('Content-Disposition', 'attachment; filename="sepa-core.pdf"'); + response.setHeader('Content-type', 'application/pdf'); stream.pipe(response); }); }); }); +// Sepa core html preview +router.get('/sepa-core/:companyId/:clientId/preview', requestToken, function(request, response, next) { + let params = { + clientId: request.params.clientId, + companyId: request.params.companyId, + isPreview: true + }; + + template.get('sepa-core', params, (error, result) => { + if (error) + return response.status(400).json({message: error.message}); + + response.send(result.body); + }); + }); + + // Debtor letter +router.get('/letter-debtor/:companyId/:clientId', requestToken, function(request, response, next) { + let params = { + clientId: request.params.clientId, + companyId: request.params.companyId + }; + + template.get('letter-debtor', params, (error, result) => { + if (error) + return response.status(400).json({message: error.message}); + + pdf.create(result.body, config.pdf).toStream(function(error, stream) { + if (error) + throw Error(error); + + response.setHeader('Content-Disposition', 'attachment; filename="extracto.pdf"'); + response.setHeader('Content-type', 'application/pdf'); + stream.pipe(response); + }); + }); + }); + + // Debtor letter html preview +router.get('/letter-debtor/:companyId/:clientId/preview', requestToken, function(request, response, next) { + let params = { + clientId: request.params.clientId, + companyId: request.params.companyId, + isPreview: true + }; + + template.get('letter-debtor', params, (error, result) => { + if (error) + return response.status(400).json({message: error.message}); + + response.send(result.body); + }); + }); + + +module.exports = router; + + // store pdf /* router.post('/sepa-core/:clientId', function(request, response, next) { template.get('sepa-core', {recipient: request.params.clientId}, (error, result) => { @@ -35,32 +106,4 @@ router.post('/sepa-core/:clientId', function(request, response, next) { }); }); }); - */ -// Sepa core preview -router.get('/sepa-core/:clientId', function(request, response, next) { - template.get('sepa-core', {clientId: request.params.clientId}, (error, result) => { - if (error) - return response.status(400).json({message: error.message}); - - let options = config.pdf; - pdf.create(result.body, options).toStream(function(error, stream) { - if (error) - throw Error(error); - - response.setHeader('Content-Disposition', 'inline; filename="sepa-core.pdf"'); - response.setHeader('Content-type', 'application/pdf'); - stream.pipe(response); - }); - }); -}); - -router.get('/sepa-core-view/:clientId', function(request, response, next) { - template.get('sepa-core', {clientId: request.params.clientId}, (error, result) => { - if (error) - return response.status(400).json({message: error.message}); - - response.send(result.body); - }); - }); - -module.exports = router; + */ \ No newline at end of file diff --git a/services/print/application/router.js b/services/print/application/router.js index 58e9a3694..a9ebe1acf 100644 --- a/services/print/application/router.js +++ b/services/print/application/router.js @@ -1,5 +1,7 @@ var express = require('express'); var router = new express.Router(); +var fs = require('fs'); +var path = require('path'); // Default page router.get('/', function(request, response) { @@ -9,4 +11,21 @@ router.get('/', function(request, response) { // Manuscripts router.use('/manuscript', require('./route/manuscript.js')); +// Serve static images +router.use('/static/:template/:image', function(request, response) { + let imagePath = path.join(__dirname, '/template/', request.params.template, '/image/', request.params.image); + + fs.stat(imagePath, function(error) { + if (error) + return response.json({message: 'Image not found'}); + + let readStream = fs.createReadStream(imagePath); + + readStream.on('open', function() { + readStream.pipe(response); + }); + }); +}); + + module.exports = router; diff --git a/services/print/application/template.js b/services/print/application/template.js index 9bc968c74..9974ebcf5 100644 --- a/services/print/application/template.js +++ b/services/print/application/template.js @@ -4,6 +4,7 @@ var locale = require('./locale.js'); var inlineCss = require('inline-css'); var path = require('path'); + module.exports = { /** * Get template. @@ -15,7 +16,7 @@ module.exports = { get: function(template, params, cb) { var templatePath = path.join(__dirname, 'template', `${template}`, `index.html`); var classPath = path.join(__dirname, 'template', `${template}`, `${template}.js`); - var stylePath = path.join(__dirname, 'template', `${template}`, 'static', 'css', 'style.css'); + var stylePath = path.join(__dirname, 'template', `${template}`, 'style.css'); fs.stat(templatePath, (error, stat) => { if (error) @@ -43,7 +44,7 @@ module.exports = { params.subject = title[1]; } - this.renderImages(template, body, (error, body) => { + this.renderImages(template, body, params.isPreview, (error, body) => { if (error) return cb(error); @@ -53,7 +54,7 @@ module.exports = { }; let getDataCb = () => { - this.render(templatePath, instance, (error, result) => getRenderedStyles(error, result)); + this.render(templatePath, params, instance, (error, result) => getRenderedStyles(error, result)); }; instance.getData(params, (error, result) => { @@ -65,6 +66,7 @@ module.exports = { return cb(error); instance._ = result.locale; + instance.isPreview = params.isPreview; getDataCb(null, result); }); }); @@ -77,7 +79,7 @@ module.exports = { * @param {Object} data - Params * @param {Object} cb - Callback */ - render: function(path, data, cb) { + render: function(path, params, data, cb) { fs.readFile(path, 'utf8', (error, body) => { // Find matching sub-templates let regexp = new RegExp(/\{\{\$\.(.*?)\}\}/, 'ig'); @@ -89,7 +91,7 @@ module.exports = { } let parentBody = body; - this.renderSub(parentBody, subTpl, data, regexp, (error, body) => { + this.renderSub(parentBody, subTpl, params, regexp, (error, body) => { if (error) return cb(error); @@ -99,13 +101,13 @@ module.exports = { }); }, - renderSub: function(body, subTpl, data, regexp, cb) { + renderSub: function(body, subTpl, params, regexp, cb) { let index = 1; subTpl.forEach(keyName => { subTplName = keyName.replace(regexp, '$1'); - this.get(subTplName, data, (error, result) => { + this.get(subTplName, params, (error, result) => { if (error) return cb(error); @@ -140,7 +142,7 @@ module.exports = { let style = ''; let body = style + html; let options = {url: ' '}; - + inlineCss(body, options) .then(function(body) { cb(null, body); @@ -156,7 +158,7 @@ module.exports = { * @param {String} body - template body * @param {Object} cb - Callback */ - renderImages: function(template, body, cb) { + renderImages: function(template, body, isPreview, cb) { let tplImages = body.match(new RegExp('src="cid:(.*?)"', 'ig')); if (!tplImages) @@ -164,10 +166,17 @@ module.exports = { // Template default attachments for (var i = 0; i < tplImages.length; i++) { - let name = tplImages[i].replace('src="cid:', '').replace('"', ''); + let src = tplImages[i].replace('src="cid:', '').replace('"', '').split('/'); + let attachmentTpl = src[0]; + let attachment = src[1]; - let imagePath = path.join(__dirname, 'template', `${template}`, 'static', 'image', name); - body = body.replace(tplImages[i], `src="file:///${imagePath}"`); + if (isPreview) { + let imagePath = `/print/static/${attachmentTpl}/${attachment}`; + body = body.replace(tplImages[i], `src="${imagePath}"`); + } else { + let imagePath = path.join(__dirname, 'template', attachmentTpl, 'image', attachment); + body = body.replace(tplImages[i], `src="file:///${imagePath}"`); + } } cb(null, body); diff --git a/services/mailer/application/template/header/static/image/action.png b/services/print/application/template/footer/image/action.png similarity index 100% rename from services/mailer/application/template/header/static/image/action.png rename to services/print/application/template/footer/image/action.png diff --git a/services/mailer/application/template/header/static/image/facebook.png b/services/print/application/template/footer/image/facebook.png similarity index 100% rename from services/mailer/application/template/header/static/image/facebook.png rename to services/print/application/template/footer/image/facebook.png diff --git a/services/mailer/application/template/header/static/image/info.png b/services/print/application/template/footer/image/info.png similarity index 100% rename from services/mailer/application/template/header/static/image/info.png rename to services/print/application/template/footer/image/info.png diff --git a/services/mailer/application/template/header/static/image/instagram.png b/services/print/application/template/footer/image/instagram.png similarity index 100% rename from services/mailer/application/template/header/static/image/instagram.png rename to services/print/application/template/footer/image/instagram.png diff --git a/services/mailer/application/template/header/static/image/linkedin.png b/services/print/application/template/footer/image/linkedin.png similarity index 100% rename from services/mailer/application/template/header/static/image/linkedin.png rename to services/print/application/template/footer/image/linkedin.png diff --git a/services/mailer/application/template/header/static/image/pinterest.png b/services/print/application/template/footer/image/pinterest.png similarity index 100% rename from services/mailer/application/template/header/static/image/pinterest.png rename to services/print/application/template/footer/image/pinterest.png diff --git a/services/mailer/application/template/header/static/image/twitter.png b/services/print/application/template/footer/image/twitter.png similarity index 100% rename from services/mailer/application/template/header/static/image/twitter.png rename to services/print/application/template/footer/image/twitter.png diff --git a/services/mailer/application/template/header/static/image/youtube.png b/services/print/application/template/footer/image/youtube.png similarity index 100% rename from services/mailer/application/template/header/static/image/youtube.png rename to services/print/application/template/footer/image/youtube.png diff --git a/services/print/application/template/footer/static/image/action.png b/services/print/application/template/footer/static/image/action.png deleted file mode 100644 index 2cd16c453d66b10611f90ee01deba70edbd7113e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3225 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%0AZQE6(OF&wX?nb&(3F$_|vza?Z{P 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 diff --git a/services/print/application/template/footer/static/image/linkedin.png b/services/print/application/template/footer/static/image/linkedin.png deleted file mode 100644 index 0d191e5aee4fa6b5a86ec10745ca92cfd258c269..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3588 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 - -image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/services/print/application/template/footer/static/image/pinterest.png b/services/print/application/template/footer/static/image/pinterest.png deleted file mode 100644 index 4d7b28ef81877be92afd73b3df221fbbcd23f7a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3807 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 Q0ssI207*qoM6N<$f)8laWdHyG diff --git a/services/print/application/template/footer/static/image/youtube.png b/services/print/application/template/footer/static/image/youtube.png deleted file mode 100644 index 11871deb548d3f160444b577756e872cac2cda45..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3513 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 - VerdNatura + VerdNatura

{{_.mercantileRegistry}}
{{_.fiscalAddress}}
diff --git a/services/print/application/template/header/static/image/action.png b/services/print/application/template/header/static/image/action.png deleted file mode 100644 index 2cd16c453d66b10611f90ee01deba70edbd7113e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3225 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%0AZQE6(OF&wX?nb&(3F$_|vza?Z{P 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 diff --git a/services/print/application/template/header/static/image/linkedin.png b/services/print/application/template/header/static/image/linkedin.png deleted file mode 100644 index 0d191e5aee4fa6b5a86ec10745ca92cfd258c269..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3588 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 - -image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/services/print/application/template/header/static/image/pinterest.png b/services/print/application/template/header/static/image/pinterest.png deleted file mode 100644 index 4d7b28ef81877be92afd73b3df221fbbcd23f7a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3807 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 Q0ssI207*qoM6N<$f)8laWdHyG diff --git a/services/print/application/template/header/static/image/youtube.png b/services/print/application/template/header/static/image/youtube.png deleted file mode 100644 index 11871deb548d3f160444b577756e872cac2cda45..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3513 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 + + + {{_.subject}} + + + + + {{$.header}} + + + +
+ +
+
+
+

EXTRACTO

+
+
CLIENTE:
+
{{clientId}}
+
+
+
FACTURA:
+
x
+
+
+
FECHA:
+
{{currentDate}}
+
+
+
+
+
+

+ {{supplierName}} +

+
+ {{supplierStreet}} +
+
+ {{supplierPostCode}}, {{supplierCity}} ({{supplierProvince}}) +
+
+ {{supplierCountry}} +
+
+
+
+ +
+
+
Fecha
+
Concepto
+
Debe
+
Haber
+
Saldo
+
+
+
Fecha
+
Concepto
+
Debe
+
Haber
+
Saldo
+
+
+ +
+ +
+
+ Subtotal +
+
+
+ +
+ + + + {{$.footer}} + + + \ No newline at end of file diff --git a/services/print/application/template/letter-debtor/letter-debtor.js b/services/print/application/template/letter-debtor/letter-debtor.js new file mode 100644 index 000000000..77715f3b7 --- /dev/null +++ b/services/print/application/template/letter-debtor/letter-debtor.js @@ -0,0 +1,54 @@ +var path = require('path'); +var database = require(path.join(__dirname, '../../database.js')); +var format = require(path.join(__dirname, '../../util/format.js')); + +module.exports = class LetterDebtor { + getData(params, cb) { + let query = `SELECT + c.id clientId, + m.code mandateCode, + LOWER(ct.code) AS countryCode, + c.email AS recipient, + c.socialName AS clientName, + c.street AS clientStreet, + c.postcode AS clientPostCode, + c.city AS clientCity, + p.name AS clientProvince, + ct.country AS clientCountry, + s.name AS supplierName, + s.street AS supplierStreet, + sc.country AS supplierCountry, + s.postCode AS supplierPostCode, + s.city AS supplierCity, + sp.name AS supplierProvince + FROM client c + JOIN country ct ON ct.id = c.countryFk + LEFT JOIN province p ON p.id = c.provinceFk + LEFT JOIN mandate m ON m.clientFk = c.id AND m.finished IS NULL + LEFT JOIN supplier s ON s.id = m.companyFk + LEFT JOIN country sc ON sc.id = s.countryFk + LEFT JOIN province sp ON sp.id = s.provinceFk + WHERE c.id = ?`; + database.pool.query(query, [params.clientId], (error, result) => { + if (error || result.length == 0) + return cb(new Error('No template data found')); + + Object.assign(this, result[0]); + cb(); + }); + } + + // Swift BIC fields + get swiftFields() { + return new Array(11); + } + + // Account number fields + get accountNumberFields() { + return new Array(23); + } + + get currentDate() { + return format.date(new Date(), '/'); + } +}; diff --git a/services/print/application/template/letter-debtor/locale/es.json b/services/print/application/template/letter-debtor/locale/es.json new file mode 100644 index 000000000..e5453e858 --- /dev/null +++ b/services/print/application/template/letter-debtor/locale/es.json @@ -0,0 +1,31 @@ +{ + "title": "Orden de domiciliación de adeudo directo SEPA CORE", + "toCompleteBySupplier": "A cumplimentar por el acreedor", + "toCompleteByClient": "A cumplimentar por el deudor", + "bodyDescription": "Mediante la firma de esta orden de domiciliación, el deudor autoriza (A) al acreedor a enviar instrucciones a la entidad del deudor para adeudar su cuenta y (B) a la entidad para efectuar los adeudos en su cuenta siguiendo las instrucciones del acreedor.Como parte de sus derechos, el deudor está legitimado al reembolso por su entidad en los términos y condiciones del contrato suscrito con la misma. La solicitud de reembolso deberá efectuarse dentro de las ocho semanas que adeudo en cuenta. Puede obtener información adicional sobre sus derechos en su entidad financiera.", + "orderReference": "Referencia de la orden de domiciliación", + "supplierIdentifier": "Identificador del acreedor", + "supplierName": "Nombre del acreedor", + "supplierStreet": "Dirección", + "supplierLocation": "CP - Población - Provincia", + "supplierCountry": "País", + "clientAdvice": "Debe llevar a su Entidad Bancaria una copia del documento firmado para que lo registre y evitar la devolución.", + "clientName": "Nombre del deudor/es", + "clientStreet": "Dirección del deudor", + "clientLocation": "CP - Población - Provincia", + "clientCountry": "País del deudor", + "swift": "Swift BIC", + "accountNumber": "Número de cuenta - IBAN", + "accountHolder": "(Titular/es de la cuenta de cargo)", + "accountNumberFormat": "En España el IBAN consta de 24 posiciones comenzando siempre por ES", + "paymentType": "Tipo de pago", + "recurrent": "Recurrente", + "unique": "Único", + "signLocation": "Fecha - Localidad", + "sign": "Firma del deudor y sello", + "mandatoryFields": "TODOS LOS CAMPOS HAN DE SER CUMPLIMENTADOS OBLIGATORIAMENTE.", + "sendOrder": "UNA VEZ FIRMADA ESTA ORDEN DE DOMICILIACIÓN DEBE SER ENVIADA AL ACREEDOR PARA SU CUSTODIA Y ES RECOMENDABLE FACILITAR UNA COPIA A SU ENTIDAD BANCARIA.", + "fiscalAddress": "VERDNATURA LEVANTE SL, B97367486 Avda. Espioca, 100, 46460 Silla · www.verdnatura.es · clientes@verdnatura.es", + "privacy": "- AVISO - Este mensaje es privado y confidencial, y debe ser utilizado exclusivamente por la persona destinataria del mismo. Si usted ha recibido este mensaje por error, le rogamos lo comunique al remitente y borre dicho mensaje y cualquier documento adjunto que pudiera contener. Verdnatura Levante SL no renuncia a la confidencialidad ni a ningún privilegio por causa de transmisión errónea o mal funcionamiento. Igualmente no se hace responsable de los cambios, alteraciones, errores u omisiones que pudieran hacerse al mensaje una vez enviado.", + "privacyLaw": "En cumplimiento de lo dispuesto en la Ley Orgánica 15/1999, de Protección de Datos de Carácter Personal, le comunicamos que los datos personales que facilite se incluirán en ficheros automatizados de VERDNATURA LEVANTE S.L., pudiendo en todo momento ejercitar los derechos de acceso, rectificación, cancelación y oposición, comunicándolo por escrito al domicilio social de la entidad. La finalidad del fichero es la gestión administrativa, contabilidad, y facturación." +} \ No newline at end of file diff --git a/services/print/application/template/sepa-core/static/css/style.css b/services/print/application/template/letter-debtor/style.css similarity index 100% rename from services/print/application/template/sepa-core/static/css/style.css rename to services/print/application/template/letter-debtor/style.css diff --git a/services/print/application/template/sepa-core/index.html b/services/print/application/template/sepa-core/index.html index 867da43d9..92cc6fb80 100644 --- a/services/print/application/template/sepa-core/index.html +++ b/services/print/application/template/sepa-core/index.html @@ -14,8 +14,8 @@
-

{{_.title}}

-
+

{{_.title}}

+
{{_.toCompleteBySupplier}}
diff --git a/services/print/application/template/sepa-core/sepa-core.js b/services/print/application/template/sepa-core/sepa-core.js index 74e08fd31..304e327da 100644 --- a/services/print/application/template/sepa-core/sepa-core.js +++ b/services/print/application/template/sepa-core/sepa-core.js @@ -10,7 +10,7 @@ module.exports = class SepaCore { LOWER(ct.code) AS countryCode, c.email AS recipient, c.socialName AS clientName, - c.postalAddress AS clientStreet, + c.street AS clientStreet, c.postcode AS clientPostCode, c.city AS clientCity, p.name AS clientProvince, diff --git a/services/print/application/template/sepa-core/static/image/action.png b/services/print/application/template/sepa-core/static/image/action.png deleted file mode 100644 index 2cd16c453d66b10611f90ee01deba70edbd7113e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3225 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%0AZQE6(OF&wX?nb&(3F$_|vza?Z{P z*VB430x6v21XKjNCdkNWB0(`3zCbT7>J zyzXBy^(LL2V`TfSSny<}=ATm`+|R6Ct08iPEvh2}6VthPyy5UcB;N5R#i(8^%;VK% zdr6c(XV)8O0Z5f#)gH^XPgq?K>Z;*~sR*2@E|@XY9#av>!@Cu<3Y6j1E7_%e{x%lU zP!aFq?Fm$f)PH(XqbKJ+_E%dS<7r1-3n_U}_f`GUD)AcB7MCR8+g0?@T zX89xJvI6PHggA9dhq3?KV<%=a^YF(%VzFsT#-q1P$Hg42%rmn%=*OkDSjXr98u0ft z_~vi_W&t&2p61m&UA;gAkjHB{dkRvHygPRo zv#f24Lclq1r~IcIxxH95!#&h(iVa1%C>Cm%22AZo)pQlO=qwJ@b?*9LHUhuaQAz+c zlx3QQi&#l*!a%r%%^dO@^=L#yFX5m}A6FDFNV*1Ikg@EDVhdYpiI#76La zVtrhNx&&k}^*-TAq8kN8uU4t*6f>c7Wi^yTi|vQuZJ}pbY|0N^raN3jdh`?47h3Ea zAH0g3WxWA_U>JU>cO)zK>l}5;AE=ixib@J)Guk)AhTAAtZ=N%T$!Ekp`hnw#Y@HTd zePbuOshL)?15Ie;X50A0htA2T0?bDCpf%T;z=8nE8zK2lW(N0dRQ!i(> zx*hh8$EA)o3+Od)jIIQT75cHQ8As`yS88%=b=G*No@3wS@7uXJC>3R@_QU1MwCkKE zuFcsk0TpJrX&Pd$P1u{B*2f$M&0DeTzkj*Z%gb~xU2JSn`;}6I_uVnW-+g*Zs9gR0 zThy+3Ke+jmt-3P(m_cI8`!(j?#$I%Y1 zu?gK-B&37Et4{-*E=@qeXFKm1(diFT0>qelp_PWxP}UHSDrGI!917(sIXlS56KCtq z%cB1HF+NzG<#~`~u~SLcUjzI*EH zPO<}!@&_eAq6G+l*e0sKBmkmObEQtOIo8aQeFxf-n}u!GFZY?16_vUA)|<@_uhKIz z9-0+#@~O)#shMWDO;?F*?s6uskS_voF|v2pB( znO6IEUSi^7&N=++WnKA>JC^_6(mLFq8pB~5Z8}T_LNmm&ys$0k6 z#8@2$K=$I%5*gipUf0OvqcqjhP{8{L!jeI#0cbWo-&-zk$7CR{(a58t^LGUG8TC$L zvWQpGc8cvVW;BD@CvZ$O$|v1VF`ASiXq$3IFcRDF5tZ zc5W0ic8RiFn&Y7o@&T7BNWxbMe3h+u3WcwMjBHE2jHbN)(vl+$!?oLJzHFbC(gohM zbkPi`S#p3?0xNu3JL~zoB``SZkrtD~oaS0|Su0^GH_yqN3Vsr#@&D0`jeApsr(4P> z3Ud)(iOaL*a~rH9^qB`g`xjTmzYazMr0kwIc_FE(shUo0g|`oTpM@{qk1k|*kYiR@ zFYNDIzG9pz3xye89Y?cdO_14YMh6Hq#L-*B>Y?h+?~kP@0qU;#>1rF)(#fvb@*sJ zdvNTB)N#m)LsJxWdzHwe!u{~5zLB6~AbHirlt2GMl~*#r!=q^oGQW=6L}hZ@ECHhb+D zIj_<9GE`cvq;!rM5yXV-! zAfMp3@>*EygYr~7PRj0{0E>bdSY41MrBe|8P0Je}ON4IU-xwE<;oG5|gAB?#=S7y( zcWu<3S@p9ARf%N~Pgc^7bNPDBwA-mE_uz zoC|z@rK*)}$X1Xz-wWeO2G|k+H>a1&6SWr{hAgGWQ`7EEFN;r=#bc2+AQcV?A@K>6 zAm=)5*IYv@YbhN{p$f7b;N>hv6_5WyotB!qjiP_!dmA8pvj;l7Uq|o-{==%g0Inf) z5b7G!v($XmxuB`sBx_>lGyM>^RG7k2KkGUok$LszeNmSiEU0>Dh~*cX*YGCs zv-uAcJNb`Ztcq&oiRVs>=)!;jjM;eG;^F3KF=ZRxZfFBPaFPaR7r*dsv?3r|)LEsn zQ*dh01dJQ;8Ej2^$pl!$T;1OSQ0!C+L>+BXAS%M>Q?t2WN;i2OB%G?z)BmP#fN2BA8vzd=SRoWB~I9Z4Gf+CpR0l`W3cP9k2FbPQ{xT^8> z0=VqRC@0>~-kWoc_O3&{Yrf#mpLjg>SP{@a7}UtiyPy=jXsiv}yT zpF}+W_#>s#W+`4R16d+{If$WW3yNDYOdJx1UL_#i&m_Wn zr+%}p zl#c*pPW|A8T$mSt^F|=iUq=}bFs0Wg1*Pjo-`3_j|B?gAIhu4xDx`?WyyLfzmrd`{ zj%eMgd9(cRZL5G9HPa~R#H7PzVB)ztRlsVpzBO^3`7w0E9}*ey=}(fs4%ugkg97&# zMfiTS-YxeCU|Qq%2H~YR=6U*Ut!4X4;PG9*{nL`iux4P^QUY*9cp%|KRkeTZhvDQmXPc6kP zh)01NUpk2=%0UR-tI8+hbFonBqz7a`8V#(;?hG8tVP8vxiw4T3}x)Emz5C z%~EkMW%bh!HW~uX4Ujl@annKT@f20o1_7%hlr%iKLixcJq9^ z;Y}oJdaXNRSuUt)u0+dOrYSZ(w)Mo<3}TLoE=1VHN;bJZ-afbknlov9`1KKB#OsNd zzap2@D|BWd-{hVZ+r&mSVuAxjF}vltF$fA$YPp4tkUV<$iz~od?74WJJ<-1PsY4>u z=|XBKM|ZOHI6P?oz2p7NF6t#ijwVUF5wC#MhYqLsbZ;eFIo#a` zd_|z0f|o|{(VDsCzVlW0JtHWp=G_+*Hs8Q(P-;-$3Csq3ifYtETvK9h-qc2xFMqd! zFb!P+3~X1p#MkVTh;yC0WJ`73Btx%p@|cx2EJ*Bdn$5z&p(p|`1S^Y$VY59O3#58JfC&mlSiSeYtEFl>Mh1h zr&2EG&R_mz9H}B7TO%e*2oxE}aA;l~$mTFK`w~x>BBhe2BW<<(+qKnJEj%5Qv9Oi7 zNnAl|+X<`tyd{+QrD)liI&|p}<)w$&8<+KZatdDVSP#dOt_KDxEkY;Fdg8TIVwKHY z1dj$>r27}G0WRA|wl9*ky%~E=vB{AiP;dIH@4|9NCIX&Qu|Zj6uCe19Y-?>HUj^vZl3rXfN8HqPFbr_x+=wy2?z^Mq1J{kwDCu_yR8TmAp{^xzZwY$7>Zacl z!C*={&6`~21{r!4zP6H!p+K#49)B*=_yAH3`SNNI2mf_Nr+#hL)#qEN8SK6zUP+2g3-=nQ_ z$F&V9HXSK(b^54hi7;dU>}&e6wohSr@Y_?948NNP&f>6&f>8k?jdPA1s9TiR|E&8p z0K@>(xzpnK!ZZkbsvCZ)o4S)0>W5eOAfmL@0p8Kz&5BN(FP8(rM>K!H&SU3NRvi#3 zI#~QHFL9>#JgVyV0A%)-c6RB<+6mQ}Jd0CPy$v0YIm@ndW1|E0r(TA5Df&LVz!vE{ zF*5_0Q~bpDL*!o7)PI^u9>nx0O#TUG8_tRDzON`Q4gpyGsU&xpZ7LgiAs;s1`JU6b zwz=<)W*sfoMa<65IyGct_yf3&lS+0UbB0*C*9|ytW#hLo_2--hsoGI$ilITe@7oV6 zxU{fmT)mzB;;6?L%}9rsp_(;Dr{cKA6!057u;i?q7HqTjSk`WuHu8F8twhDkk)-^` zR7(7k7AKBzFzAA&Mw)e$asWCTNz9G}Z+$>^ z^Ow-?+6F<`j7rssD7w46CNywscR7yn`S5ujQOslTDV=T9Z&(uJf5Y8c21M6+@{Ntn zWopw9xwnZGvuO5cn-7twerrVRC5Cqkl8Qx6w{lTVm;&9KC=CT z``L&UY$f9=1Wg*Ngn7Dx_!GpbQGsV);rxl;IR^boSgivrRLlWr*8iI?U=P5ga`FK+ z#GK+a4tJFz&lg}@IkxxZ2mE>FEmu~@eE!zhG(R}Goh(c1+p{E_-sUG#0uD{>?H|fJ z+J!pl1Uk5^*P}y{N4}RR8RcG@a)bR+ES1K0Uc^}glkRYdyRg-GX8CZus&8lF zH0ZXAKO^l!oCINM#cw(#m%D6JBX(0#7_ zeMtTNW+Q}vh^Xw_0{=dYv|Urj90eu zX}2BPBq}f8?$i3-gUzznJ{WfYg5%5Q8u6CDol!osI&#{xWN^ATH9-vg)56`>;b+ie zYBs%D-eD~&B{>Ht>5m!2L5rt@Gnv5lah(X=yS%ei;_%4DgyNz3H zP0|wpeF{8{OuitpfRpze_L~O!M!VlWvGb$fXzvca2XxA9D z&9{1T9x>K%HgAjM#WDbtH>^KZmc@cxo5cIIGxEnWzF&24pWR;9CMXctc<4rZBy@PA z*ccadnm!hxzF$i`!@6Rimadoy(sxhUX#J^?r}^78i>eU8Lhor0-~baOl{wG`9yWh} zx_JK0)UeF=ZAxo>LsoA5atdZyyzTRcoekf&HO~vARh6L9g^io?S6{ns-hIi@JWzjC#g!5e6NLB)c9ItD z^F@7q(-?Fihw^4~2{uERL;CcNe8LQ&8$|TW(RRQbHVD{CC>LDqe>|DPaJYC(BE}cl zrJNb#>U%11X9x>Gs45hun!Bhml=OPte35DU|H_aMt(jKd`ysw4g*S9X2??>iiP6)L z5}1S|M&wg}rCxltgzscVj20j+s_H)6bdK=vv#Y>*tml6Z8S!|_ZzWGFXP}8pwy|z( zn6CY>2`WV1N6GxH>=_`HAWOz@^Y?Qz!J>K9zAat)z0H>)eqouB!Jk=p1$}TW4Y2dK z`i9w!OfpW(1$D3aG&*bCC0PUPMnvHNLR#3w8T=cMO<0N{}mk znF7dSagYLDz$^ifryQ-ewJ?4NCIi$8VuZmY(rHX3inj|zhOsi{srV$_ZbUl$y{@_y z2VR~_*vc|rhCrn?H3FQY%a0gWD>;(Aj;gC(pFe#jc%K1`@Q~7qrr-$X*3j8mb^lJ% zeV6d3r~ISED**+8s(_LbI^b_BE4ql3<%g^S0s<`~PuBH8SJv=!7N>ipxKW^oM@%sz zyjH$1osDurzZ{Y}o_%Hx;;qxjTEpUt<;WdbylA4Ds4sKC1S=m^UCh$JbCGyk~7gcDR|bXiHdsBHjE(rO-Mz_PBZ63d?6R@U>s9}o@b z#FP7U$JAwLaZn_1@bM#6>)`n$T%p5^4g~9!3>G2^%kD5Mt4tjKseHsC?WY*TST0?> z9g7nN3_Ax_m|Pu6w@>ke7f#{I@8Z)iBNV@2M9adOc{-WU;gleCZj*Ab3{BJseO8G% z{xx*o+@ZV`U)2rY?*^BO&l=X3S2e|gZ|&9OvQQv`&s<)rXjk$O0FH$bZS7^)3p+o# zp2R4ip=zp)=wettY+hwkO4^{(z_7-Zz{1LVxUe69`;3u1+N6w3rfb$`XobkfGEn(& zjtU4U0^gMjTh@~bQUMAs_SUs+V8W%*CG6Nq^5kKNfr#wi6MxN1ZJSlPC>TxZA*7lx z^K*D~`!cZjR#etzm45AnK8Oqr@MxMrAR1|!FvCHH1HhSEphVUSpl)yegeiRAydCpC zalU@dyN>UG&4Z5mW=dqVn(-c7TJ9tZm+lHH>->pAvoPbUtn){-FxYnq?+TPZ;(xMi z#_Z5if1+i#G)P}H-ACI^fii;!o0TT@<&lCc3Ci^9u$CNCv(q<=g>?mP1+kDO78asS z;mle(d&&@{H*h2pameuI)BygQt*tF>;m$yk*zNs#&@O7e(Nni)Jgxjr9}{eJDPV(A zR8o=#3^Tj?PFuB{Q~>7DY%=OS@$ex)$xmWHPby{dRG)n6emT(Xz~v)|T?)VJa@ApZt?Q{o(tQ~? zf$Z62;TNmF2y!95Wr*PN;;gEcj=(!@pxwca=4Zf~e8sR0)w{~xb@wJ4YI4ZK4onAp%hiZpIzHmQx_(xf)+nz)dI1(%A1gHGX z1pHjauop*9{u=rw53*%5;>P1Do!32Hq-d-3#4;R=u^Wu5c&x?QyZfX}_m#xI6a3u4 zR2X(a4-r!oDkw~hkAzyiMpX~5N+xszfg>12AvdO#hB@BWyVsNZi7d)E4GZVv-ojp# z=Fe@44PyITI|v@EL82&)j_!TQ@CR5jp$vtsYNCE znn3v^T_wUuO(+kU%);8Xn-z6(pQFffcr|u+C6qoz|0r3*D+Ab0LVsrlJNnTg4dc)$ zk$F1XT09BeD0CXtPY61yM}@btRVm8%cRl0Qf&8fQE*U^6lw+(rJ8){BBIH9e!v^7r zcj_W>PTx5bE{11a6=7i_ix0rP4;=*0It%HCrc`2MWgcIpvCZLh$l@A9o91Hq&P2`BeRk!d zRH^(+0>$o>Xvh*-`mw0eoPYPWev_?($wTIJr%lnk(bR}xWf28QJYGvIRka~}=$4=p zWUGC-j$>1mx`?MJPcBXZHv+&O)l{1%aOY5#9fwAuX2&NVw+&N$wisNUXu@WY<#5*dfq3KdG$!*@=dN()rDU5kG#5=WlaW(e02bn&W+K7bf3~H2_F|Bnod&&i zD1209#7HvblIe#*Iu>Izq);IDaNYEVwQ13mmmQB|{C91NNS?!QL^K>n7-eYN|FnYs z59r`czyDjDgJG%Z%~R!hx2jA8FqJG|kLt{)I`rO?l4?YbDHnFX3=aYxFiBsMnzLm{ z>dYpE(FD^EHTQi5vEQ7ByzUn~SGg;MFk zyK)R%5xFa!7AGQmF@fg97^~sL7@s`VD8bqN{!~e1u{8G@%<@gkqJsCXU{9suH0m0Z&%EiD`6wL$VB3Ypt}I(Jk~xa3O3iUC@gI1@aDXb;dtT1PJ-*&EJk zqW-hbV*dk!%^+5GR%T940O9T{GmjTLR^5D*oh6oQk*Q4P_ZoLX(}QgqLmo7CS1yoJ zF{z4CNluxm%+Rzl33A|XMOu+^MN#9F-OeaqnGfv-;o{QGL*=12{$X>T`In1I9 z^D^C$v<#cXa&@Bue~^h|{NIy40Z*z5gX~Kq-wG5NGAn^bYrkZz#(9}*6uHFT%F?Tt z^FzLe<#^Uh9z-HX^URF!U$DDwuGP}06@F)Yam(F_lu|bqrvS=R*vOu~AKGf@lE`k<+knOP}<^R)TZ zu2#xV6$_R+3Cl1qUMW?B_O};ASL>;Efs7_*4}zTd|Gycn7TOssB#lz?UIH?yHf-IdC7XCMJB8)SEUS7r$i(5OO`XpanS_KS2z)YlUP@>R7%C$#M&UB zpIm@n{ftBVP~vEe7Zd_?i$nC_G_P{IsD{_v%Xc_J!uzC(&2ZcIE&hFhjO=uL z%xn`0+2nsi*g8H5QsAglY{XOZ@}Ph3^PS3y&BguSbS;wtkYm6_;3l3*;Y1yb;?Uk| zB7?X70F5h25%rl~SalDADf}OnDOpW!!oI(_;r!pv09{OgsOsIJo=Y?JuStm^;qj0n zM_pHCUgVeO{F@qf($nPOg)PYc&``>SfLK1*qV09lK)N%kxD zcseGn;v8jfwwFD{D8BGPN}WfHIzu#zR127!C6qEWX}}mB!n#sU@*0nK{nR7N1l>+6 z{$qJ(Vx{*X9y%(c&XpnA#0*ld1{%GZ(#o&F3TTrnnM7J9E%Te3EDx*{7goG?jE3oE zO;pvk_qD-e9O*UmT4Gq}A&{MF+4i%&ho8=>MJ^HtL`fwYJ5p^aTkX~mzFV&RN%x*E z1f{HSgM}uYa>cvPtoWDA#D(&qK)>%kkVFc<@#d+mGy$5VP$qFSg6|RLYKT!uTU~D- zkxYJIAuFY$lztlwMx7y4r}De(3_zff5!P%oi{c)8pBwl`NR*CvX0p{raqztyK5|g3 zn1`$J!!vkQwzSPkO119!pn0EV<6@`X^vRsba)a;Mwj^S@sRyP5w@^bj#}$j;IoN)D zMvo;-N|nDo;zO15VPkf=_h-g>bC!!oz4i9uk{q!-5k^AOg=$l14jL+|iFcaQLq++s zAkK5P@%jav>_`pUE}%E&*SzaT<6aigaOVaTg=+blcM?{ku7K}SrvV~a&k^T0tn0~y z_@CO`&&_Lk#S&TD=2^?+G^Rnau|HMj(`p!1b`upH=;QC$!#~Z;KNQMtGhA#atK8ot zdT~aR2#@x@=c;sq4xXO^p%g+;{)9L4Pa1Q+Odbw+2jr?a$+&GmA_&QI7hd}-k#FDl zPoJXJ)~9lAQGwJFC>l7@Xv7j&dz=O0aZuqQP-o~#_n>fsmx;7m1p1tFjQY$fGw!!< zzk*7PHxe`pMyU?=M^!kVwffDo+U{iqt6kJj-6M$g)s926dL*67kyL-_mn@=yQx1J{ z{O+?y`@!BeKvqFQLPG2F<0;Ft-CDc%!sGq*+c&{18oi$Jg}BYJ+b|mWU`_pLTsmdk^O>j%vn?@Zrl3lM_0@ZNOV%&RrGI<0Fz|(0)!Tl%Zw2r}_9? zx0m2j2d6e;zSAVEyE(;YZWNag8J)F1#y2$a)0vsQ<_}rLX-{jWrkMRXgH^{^ywsj? zWo0pdI7bun->ioS^;EQOph2&nSJoa^$Vm55)IQMORK#1*i6D`w(qgB#VaYQ1JRa(^ z^!4@4R~d)A@)yCjfCr$P5vKdU$M;5-c~2Cd0YLeyr{ma%*>Wv$P~K}TPvi3w)jOHl zR)G_!kC<_u;?Ji*cbSwLO&6R4RDm{@#|w#>AjzoEg)U5NrLCG#pFnUj zafc*@>gG0cVhW!Oh5RzI(%cnOvKuSs)jV7#!&{794CDNKA|8)e_s6@63!vK3k~!`3 zaC2s4Z+}Ys8=LhtQH4j;jqn(ZA2H&pLn7{qnUGtzX9 zIw@jg9qVZAPw=8y$@OBH2gu3u!0l#?|HAG2iA|LU1XqZrS0;11Ch+GY252dH%4vr7 z&nM;Q_zw!uVlGKzHuVa<5o^5*LhY|#cUyN~qET|5R^{aS;ecd7(Jjmi(%IXG1BluBmB zNA)KPShSD%-Hzs;01Vsl8Suwo_E|a9YuEumr2{*FMja$ZmQPMso7o5YFK@w_IWLhs zXRH+PLoof|bF(qga@zjQ!oa{FZ~>I3;t_UC)s%i2#4vJ%D8`*L*0Qp)vUyeE+Xk2@ z(N}aVOE&sEdI6?8A7T>Zix=vwQ(zgNap18$R)Uy3JhhPY$Niti#GkGULp7+Hr*!^H zso>qxz|q&$PyO4!L|9*N!QTx8X~<|h+dUZ&^?fLk^zMC3`NGo zq-bcLgPmXx|7>*Ae0Oqot{F68-*##e>kZK$)U(Rg(ZcaBEd2kZ4teQn8#C)4W{(=u zU>TfcTVTSAkgkso4+9kF((+nH%~L>3y!!y;^#D$((?B)!BRm2^lD%sohUUa`E@O?S z_G|qzdN^6Y?C_;k)19@-4Y)$LRe9vwH}B)WHvyyD4)EUuz8N@NF)?cr6B9f80BKf$ zOvBL1O6E1-#mXuqq?hj8|FcpcU}2e|bNPYc|Kl%4O*_GfW$_kCfnZAAXbiF5Ek|f` zdAu@UNoFNqtcF|mh5F+z9>5kH+XY7Mt1_J?Wmi|%vxkeZlxC!j9t$KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0003HNklzilU*RmqWq9o@y4X>?WWp~O>l#OOJf~TbU*fQ?cic@n9n|@O nba7Kxr-j<KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z000BBNklD;}~oteAf zaM6E0GB`s|b zW2xJna-2~~+nYhQP0~q8RY^xBt9(ZR89`o`G^03~k+d(PztzsKH{H|2 zz^`WZb_Rg8z$CDu!9V>Ia4yx}2h0FZn%OTI{C)tmnOPZ0MPFLBX8h{c0(7h2T+G;G%LC_Bv5x+UjP@6u=dJ?K4UGLWz?&y4C2dZ%moyakn@Q3b z&|LtY1wPN2;59!Gv;)t%?r9)4;J*yKlmH#>AP>0z+{PT&=wniKwYpd$g+ z05<~whJeTX8g<^;99megOf zDf9zJy!n2lpLM{k1eoxpDOk+xGvKJ_InGGBDrs2K72u5PkD1wMBO~GG(|>sovh8RBsAkK+^O)C)KBeljbms-y zT7{w-C$%NHzQB@PUrb3Zuj1zyJS=`r0>66@wG3G0Tm5YDb0?9-PmApNbeZ{iPsr3O lGk*(wO&(=tNwk{$JphOt7hpNyu&Dq5002ovPDHLkV1gaV>H7cx diff --git a/services/print/application/template/sepa-core/static/image/linkedin.png b/services/print/application/template/sepa-core/static/image/linkedin.png deleted file mode 100644 index 0d191e5aee4fa6b5a86ec10745ca92cfd258c269..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3588 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 - -image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/services/print/application/template/sepa-core/static/image/pinterest.png b/services/print/application/template/sepa-core/static/image/pinterest.png deleted file mode 100644 index 4d7b28ef81877be92afd73b3df221fbbcd23f7a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3807 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 Q0ssI207*qoM6N<$f)8laWdHyG diff --git a/services/print/application/template/sepa-core/static/image/youtube.png b/services/print/application/template/sepa-core/static/image/youtube.png deleted file mode 100644 index 11871deb548d3f160444b577756e872cac2cda45..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3513 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