Merge branch 'dev' of https://gitea.verdnatura.es/verdnatura/salix into 2734-invoice_report
gitea/salix/pipeline/head This commit looks good
Details
gitea/salix/pipeline/head This commit looks good
Details
This commit is contained in:
commit
1ed4dd27d6
|
@ -0,0 +1,28 @@
|
|||
module.exports = function(Self) {
|
||||
Self.remoteMethodCtx('getStarredModules', {
|
||||
description: 'returns the starred modules for the current user',
|
||||
accessType: 'READ',
|
||||
returns: {
|
||||
type: 'object',
|
||||
root: true
|
||||
},
|
||||
http: {
|
||||
path: `/getStarredModules`,
|
||||
verb: 'get'
|
||||
}
|
||||
});
|
||||
|
||||
Self.getStarredModules = async ctx => {
|
||||
const userId = ctx.req.accessToken.userId;
|
||||
const filter = {
|
||||
where: {
|
||||
workerFk: userId
|
||||
},
|
||||
fields: ['moduleFk']
|
||||
};
|
||||
|
||||
const starredModules = await Self.app.models.StarredModule.find(filter);
|
||||
|
||||
return starredModules;
|
||||
};
|
||||
};
|
|
@ -0,0 +1,31 @@
|
|||
const app = require('vn-loopback/server/server');
|
||||
const LoopBackContext = require('loopback-context');
|
||||
|
||||
describe('getStarredModules()', () => {
|
||||
const activeCtx = {
|
||||
accessToken: {userId: 9},
|
||||
http: {
|
||||
req: {
|
||||
headers: {origin: 'http://localhost'}
|
||||
}
|
||||
}
|
||||
};
|
||||
const ctx = {req: activeCtx};
|
||||
|
||||
beforeEach(() => {
|
||||
spyOn(LoopBackContext, 'getCurrentContext').and.returnValue({
|
||||
active: activeCtx
|
||||
});
|
||||
});
|
||||
|
||||
it(`should return the starred modules for a given user`, async() => {
|
||||
const newStarred = await app.models.StarredModule.create({workerFk: 9, moduleFk: 'Clients'});
|
||||
const starredModules = await app.models.StarredModule.getStarredModules(ctx);
|
||||
|
||||
expect(starredModules.length).toEqual(1);
|
||||
expect(starredModules[0].moduleFk).toEqual('Clients');
|
||||
|
||||
// restores
|
||||
await app.models.StarredModule.destroyById(newStarred.id);
|
||||
});
|
||||
});
|
|
@ -0,0 +1,36 @@
|
|||
const app = require('vn-loopback/server/server');
|
||||
const LoopBackContext = require('loopback-context');
|
||||
|
||||
describe('toggleStarredModule()', () => {
|
||||
const activeCtx = {
|
||||
accessToken: {userId: 9},
|
||||
http: {
|
||||
req: {
|
||||
headers: {origin: 'http://localhost'}
|
||||
}
|
||||
}
|
||||
};
|
||||
const ctx = {
|
||||
req: activeCtx
|
||||
};
|
||||
|
||||
beforeEach(() => {
|
||||
spyOn(LoopBackContext, 'getCurrentContext').and.returnValue({
|
||||
active: activeCtx
|
||||
});
|
||||
});
|
||||
|
||||
it('should create a new starred module and then remove it by calling the method again with same args', async() => {
|
||||
const starredModule = await app.models.StarredModule.toggleStarredModule(ctx, 'Orders');
|
||||
let starredModules = await app.models.StarredModule.getStarredModules(ctx);
|
||||
|
||||
expect(starredModules.length).toEqual(1);
|
||||
expect(starredModule.moduleFk).toEqual('Orders');
|
||||
expect(starredModule.workerFk).toEqual(activeCtx.accessToken.userId);
|
||||
|
||||
await app.models.StarredModule.toggleStarredModule(ctx, 'Orders');
|
||||
starredModules = await app.models.StarredModule.getStarredModules(ctx);
|
||||
|
||||
expect(starredModules.length).toEqual(0);
|
||||
});
|
||||
});
|
|
@ -0,0 +1,41 @@
|
|||
module.exports = function(Self) {
|
||||
Self.remoteMethodCtx('toggleStarredModule', {
|
||||
description: 'creates or deletes a starred module for the current user',
|
||||
accessType: 'WRITE',
|
||||
returns: {
|
||||
type: 'object',
|
||||
root: true
|
||||
},
|
||||
accepts: {
|
||||
arg: 'moduleName',
|
||||
type: 'string',
|
||||
required: true,
|
||||
description: 'The module name'
|
||||
},
|
||||
http: {
|
||||
path: `/toggleStarredModule`,
|
||||
verb: 'post'
|
||||
}
|
||||
});
|
||||
|
||||
Self.toggleStarredModule = async(ctx, moduleName) => {
|
||||
const userId = ctx.req.accessToken.userId;
|
||||
const filter = {
|
||||
where: {
|
||||
workerFk: userId,
|
||||
moduleFk: moduleName
|
||||
}
|
||||
};
|
||||
|
||||
const [starredModule] = await Self.app.models.StarredModule.find(filter);
|
||||
|
||||
if (starredModule)
|
||||
await starredModule.destroy();
|
||||
else {
|
||||
return Self.app.models.StarredModule.create({
|
||||
workerFk: userId,
|
||||
moduleFk: moduleName
|
||||
});
|
||||
}
|
||||
};
|
||||
};
|
|
@ -59,6 +59,9 @@
|
|||
"Language": {
|
||||
"dataSource": "vn"
|
||||
},
|
||||
"Module": {
|
||||
"dataSource": "vn"
|
||||
},
|
||||
"Province": {
|
||||
"dataSource": "vn"
|
||||
},
|
||||
|
@ -71,6 +74,9 @@
|
|||
"SageWithholding": {
|
||||
"dataSource": "vn"
|
||||
},
|
||||
"StarredModule": {
|
||||
"dataSource": "vn"
|
||||
},
|
||||
"TempContainer": {
|
||||
"dataSource": "tempStorage"
|
||||
},
|
||||
|
|
|
@ -2,9 +2,11 @@ module.exports = Self => {
|
|||
Self.validatesPresenceOf('name', {
|
||||
message: 'Name cannot be blank'
|
||||
});
|
||||
|
||||
Self.validatesPresenceOf('bic', {
|
||||
message: 'Swift / BIC cannot be empty'
|
||||
});
|
||||
|
||||
Self.validatesUniquenessOf('bic', {
|
||||
message: 'This BIC already exist.'
|
||||
});
|
|
@ -1,11 +1,51 @@
|
|||
const fs = require('fs-extra');
|
||||
const sharp = require('sharp');
|
||||
const path = require('path');
|
||||
const readChunk = require('read-chunk');
|
||||
const imageType = require('image-type');
|
||||
const bmp = require('bmp-js');
|
||||
|
||||
module.exports = Self => {
|
||||
require('../methods/image/download')(Self);
|
||||
require('../methods/image/upload')(Self);
|
||||
|
||||
// Function extracted from jimp package (utils)
|
||||
function scan(image, x, y, w, h, f) {
|
||||
// round input
|
||||
x = Math.round(x);
|
||||
y = Math.round(y);
|
||||
w = Math.round(w);
|
||||
h = Math.round(h);
|
||||
|
||||
for (let _y = y; _y < y + h; _y++) {
|
||||
for (let _x = x; _x < x + w; _x++) {
|
||||
const idx = (image.bitmap.width * _y + _x) << 2;
|
||||
f.call(image, _x, _y, idx);
|
||||
}
|
||||
}
|
||||
|
||||
return image;
|
||||
}
|
||||
|
||||
// Function extracted from jimp package (type-bmp)
|
||||
function fromAGBR(bitmap) {
|
||||
return scan({bitmap}, 0, 0, bitmap.width, bitmap.height, function(
|
||||
x,
|
||||
y,
|
||||
index
|
||||
) {
|
||||
const alpha = this.bitmap.data[index + 0];
|
||||
const blue = this.bitmap.data[index + 1];
|
||||
const green = this.bitmap.data[index + 2];
|
||||
const red = this.bitmap.data[index + 3];
|
||||
|
||||
this.bitmap.data[index + 0] = red;
|
||||
this.bitmap.data[index + 1] = green;
|
||||
this.bitmap.data[index + 2] = blue;
|
||||
this.bitmap.data[index + 3] = bitmap.is_with_alpha ? alpha : 0xff;
|
||||
}).bitmap;
|
||||
}
|
||||
|
||||
Self.registerImage = async(collectionName, srcFilePath, fileName, entityId) => {
|
||||
const models = Self.app.models;
|
||||
const tx = await Self.beginTransaction({});
|
||||
|
@ -48,13 +88,31 @@ module.exports = Self => {
|
|||
const dstDir = path.join(collectionDir, 'full');
|
||||
const dstFile = path.join(dstDir, file);
|
||||
|
||||
const buffer = readChunk.sync(srcFilePath, 0, 12);
|
||||
const type = imageType(buffer);
|
||||
|
||||
let sharpOptions;
|
||||
let imgSrc = srcFilePath;
|
||||
if (type.mime == 'image/bmp') {
|
||||
const bmpBuffer = fs.readFileSync(srcFilePath);
|
||||
const bmpData = fromAGBR(bmp.decode(bmpBuffer));
|
||||
imgSrc = bmpData.data;
|
||||
sharpOptions = {
|
||||
raw: {
|
||||
width: bmpData.width,
|
||||
height: bmpData.height,
|
||||
channels: 4
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
const resizeOpts = {
|
||||
withoutEnlargement: true,
|
||||
fit: 'inside'
|
||||
};
|
||||
|
||||
await fs.mkdir(dstDir, {recursive: true});
|
||||
await sharp(srcFilePath, {failOnError: false})
|
||||
await sharp(imgSrc, sharpOptions)
|
||||
.resize(collection.maxWidth, collection.maxHeight, resizeOpts)
|
||||
.png()
|
||||
.toFile(dstFile);
|
||||
|
@ -69,7 +127,7 @@ module.exports = Self => {
|
|||
};
|
||||
|
||||
await fs.mkdir(dstDir, {recursive: true});
|
||||
await sharp(srcFilePath, {failOnError: false})
|
||||
await sharp(imgSrc, sharpOptions)
|
||||
.resize(size.width, size.height, resizeOpts)
|
||||
.png()
|
||||
.toFile(dstFile);
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"name": "Module",
|
||||
"base": "VnModel",
|
||||
"options": {
|
||||
"mysql": {
|
||||
"table": "salix.module"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"code": {
|
||||
"type": "string",
|
||||
"id": true
|
||||
}
|
||||
},
|
||||
"acls": [
|
||||
{
|
||||
"accessType": "READ",
|
||||
"principalType": "ROLE",
|
||||
"principalId": "$everyone",
|
||||
"permission": "ALLOW"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,4 @@
|
|||
module.exports = Self => {
|
||||
require('../methods/starred-module/getStarredModules')(Self);
|
||||
require('../methods/starred-module/toggleStarredModule')(Self);
|
||||
};
|
|
@ -0,0 +1,35 @@
|
|||
{
|
||||
"name": "StarredModule",
|
||||
"base": "VnModel",
|
||||
"options": {
|
||||
"mysql": {
|
||||
"table": "vn.starredModule"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "number",
|
||||
"id": true
|
||||
},
|
||||
"workerFk": {
|
||||
"type": "number",
|
||||
"required": true
|
||||
},
|
||||
"moduleFk": {
|
||||
"type": "string",
|
||||
"required": true
|
||||
}
|
||||
},
|
||||
"relations": {
|
||||
"worker": {
|
||||
"type": "belongsTo",
|
||||
"model": "Worker",
|
||||
"foreignKey": "workerFk"
|
||||
},
|
||||
"module": {
|
||||
"type": "belongsTo",
|
||||
"model": "Module",
|
||||
"foreignKey": "moduleFk"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,8 +0,0 @@
|
|||
UPDATE `salix`.`ACL` SET `principalId` = 'deliveryBoss' WHERE (`id` = '194');
|
||||
UPDATE `salix`.`ACL` SET `principalId` = 'claimManager' WHERE (`id` = '97');
|
||||
UPDATE `salix`.`ACL` SET `principalId` = 'claimManager' WHERE (`id` = '100');
|
||||
UPDATE `salix`.`ACL` SET `principalId` = 'claimManager' WHERE (`id` = '103');
|
||||
UPDATE `salix`.`ACL` SET `principalId` = 'claimManager' WHERE (`id` = '202');
|
||||
|
||||
INSERT INTO `salix`.`ACL` (`model`, `property`, `accessType`, `permission`, `principalType`, `principalId`) VALUES ('Town', '*', 'WRITE', 'ALLOW', 'ROLE', 'deliveryBoss');
|
||||
INSERT INTO `salix`.`ACL` (`model`, `property`, `accessType`, `permission`, `principalType`, `principalId`) VALUES ('Province', '*', 'WRITE', 'ALLOW', 'ROLE', 'deliveryBoss');
|
|
@ -1,3 +0,0 @@
|
|||
UPDATE `vn`.`claimState` SET `roleFk` = '72' WHERE (`id` = '3');
|
||||
UPDATE `vn`.`claimState` SET `roleFk` = '72' WHERE (`id` = '4');
|
||||
UPDATE `vn`.`claimState` SET `roleFk` = '72' WHERE (`id` = '5');
|
|
@ -1,9 +0,0 @@
|
|||
ALTER TABLE `vn`.`observationType`
|
||||
ADD COLUMN `code` VARCHAR(45) NOT NULL AFTER `description`;
|
||||
|
||||
UPDATE `vn`.`observationType` SET `code` = 'itemPicker' WHERE (`id` = '1');
|
||||
UPDATE `vn`.`observationType` SET `code` = 'packager' WHERE (`id` = '2');
|
||||
UPDATE `vn`.`observationType` SET `code` = 'salesPerson' WHERE (`id` = '4');
|
||||
UPDATE `vn`.`observationType` SET `code` = 'administrative' WHERE (`id` = '5');
|
||||
UPDATE `vn`.`observationType` SET `code` = 'weight' WHERE (`id` = '6');
|
||||
UPDATE `vn`.`observationType` SET `code` = 'delivery' WHERE (`id` = '3');
|
|
@ -1,7 +0,0 @@
|
|||
ALTER TABLE `account`.`roleRole`
|
||||
ADD `id` INT UNSIGNED NOT NULL AUTO_INCREMENT FIRST,
|
||||
ADD PRIMARY KEY (`id`);
|
||||
|
||||
UPDATE `account`.`role` SET id = 100 WHERE `name` = 'root';
|
||||
|
||||
CALL account.role_sync;
|
|
@ -1,504 +0,0 @@
|
|||
DROP PROCEDURE IF EXISTS account.role_syncPrivileges;
|
||||
DELIMITER $$
|
||||
CREATE DEFINER=`root`@`%` PROCEDURE `account`.`role_syncPrivileges`()
|
||||
BEGIN
|
||||
/**
|
||||
* Synchronizes permissions of MySQL role users based on role hierarchy.
|
||||
* The computed role users of permission mix will be named according to
|
||||
* pattern z-[role_name].
|
||||
*
|
||||
* If any@localhost user exists, it will be taken as a template for basic
|
||||
* attributes.
|
||||
*
|
||||
* Warning! This procedure should only be called when MySQL privileges
|
||||
* are modified. If role hierarchy is modified, you must call the role_sync()
|
||||
* procedure wich calls this internally.
|
||||
*/
|
||||
DECLARE vIsMysql BOOL DEFAULT VERSION() NOT LIKE '%MariaDB%';
|
||||
DECLARE vVersion INT DEFAULT SUBSTRING_INDEX(VERSION(), '.', 1);
|
||||
DECLARE vTplUser VARCHAR(255) DEFAULT 'any';
|
||||
DECLARE vTplHost VARCHAR(255) DEFAULT '%';
|
||||
DECLARE vRoleHost VARCHAR(255) DEFAULT 'localhost';
|
||||
DECLARE vAllHost VARCHAR(255) DEFAULT '%';
|
||||
DECLARE vPrefix VARCHAR(2) DEFAULT 'z-';
|
||||
DECLARE vPrefixedLike VARCHAR(255);
|
||||
DECLARE vPassword VARCHAR(255) DEFAULT '';
|
||||
|
||||
-- Deletes computed role users
|
||||
|
||||
SET vPrefixedLike = CONCAT(vPrefix, '%');
|
||||
|
||||
IF vIsMysql THEN
|
||||
DELETE FROM mysql.user
|
||||
WHERE `User` LIKE vPrefixedLike;
|
||||
ELSE
|
||||
DELETE FROM mysql.global_priv
|
||||
WHERE `User` LIKE vPrefixedLike;
|
||||
END IF;
|
||||
|
||||
DELETE FROM mysql.db
|
||||
WHERE `User` LIKE vPrefixedLike;
|
||||
|
||||
DELETE FROM mysql.tables_priv
|
||||
WHERE `User` LIKE vPrefixedLike;
|
||||
|
||||
DELETE FROM mysql.columns_priv
|
||||
WHERE `User` LIKE vPrefixedLike;
|
||||
|
||||
DELETE FROM mysql.procs_priv
|
||||
WHERE `User` LIKE vPrefixedLike;
|
||||
|
||||
DELETE FROM mysql.proxies_priv
|
||||
WHERE `Proxied_user` LIKE vPrefixedLike;
|
||||
|
||||
-- Temporary tables
|
||||
|
||||
DROP TEMPORARY TABLE IF EXISTS tRole;
|
||||
CREATE TEMPORARY TABLE tRole
|
||||
(INDEX (id))
|
||||
ENGINE = MEMORY
|
||||
SELECT
|
||||
id,
|
||||
`name` role,
|
||||
CONCAT(vPrefix, `name`) prefixedRole
|
||||
FROM role
|
||||
WHERE hasLogin;
|
||||
|
||||
DROP TEMPORARY TABLE IF EXISTS tRoleInherit;
|
||||
CREATE TEMPORARY TABLE tRoleInherit
|
||||
(INDEX (inheritsFrom))
|
||||
ENGINE = MEMORY
|
||||
SELECT
|
||||
r.prefixedRole,
|
||||
ri.`name` inheritsFrom
|
||||
FROM tRole r
|
||||
JOIN roleRole rr ON rr.role = r.id
|
||||
JOIN role ri ON ri.id = rr.inheritsFrom;
|
||||
|
||||
-- Recreate role users
|
||||
|
||||
IF vIsMysql THEN
|
||||
DROP TEMPORARY TABLE IF EXISTS tUser;
|
||||
CREATE TEMPORARY TABLE tUser
|
||||
SELECT
|
||||
r.prefixedRole `User`,
|
||||
vTplHost `Host`,
|
||||
IFNULL(t.`authentication_string`,
|
||||
'') `authentication_string`,
|
||||
IFNULL(t.`plugin`,
|
||||
'mysql_native_password') `plugin`,
|
||||
IFNULL(IF('' != u.`ssl_type`,
|
||||
u.`ssl_type`, t.`ssl_type`),
|
||||
'') `ssl_type`,
|
||||
IFNULL(IF('' != u.`ssl_cipher`,
|
||||
u.`ssl_cipher`, t.`ssl_cipher`),
|
||||
'') `ssl_cipher`,
|
||||
IFNULL(IF('' != u.`x509_issuer`,
|
||||
u.`x509_issuer`, t.`x509_issuer`),
|
||||
'') `x509_issuer`,
|
||||
IFNULL(IF('' != u.`x509_subject`,
|
||||
u.`x509_subject`, t.`x509_subject`),
|
||||
'') `x509_subject`,
|
||||
IFNULL(IF(0 != u.`max_questions`,
|
||||
u.`max_questions`, t.`max_questions`),
|
||||
0) `max_questions`,
|
||||
IFNULL(IF(0 != u.`max_updates`,
|
||||
u.`max_updates`, t.`max_updates`),
|
||||
0) `max_updates`,
|
||||
IFNULL(IF(0 != u.`max_connections`,
|
||||
u.`max_connections`, t.`max_connections`),
|
||||
0) `max_connections`,
|
||||
IFNULL(IF(0 != u.`max_user_connections`,
|
||||
u.`max_user_connections`, t.`max_user_connections`),
|
||||
0) `max_user_connections`
|
||||
FROM tRole r
|
||||
LEFT JOIN mysql.user t
|
||||
ON t.`User` = vTplUser
|
||||
AND t.`Host` = vRoleHost
|
||||
LEFT JOIN mysql.user u
|
||||
ON u.`User` = r.role
|
||||
AND u.`Host` = vRoleHost;
|
||||
|
||||
IF vVersion <= 5 THEN
|
||||
SELECT `Password` INTO vPassword
|
||||
FROM mysql.user
|
||||
WHERE `User` = vTplUser
|
||||
AND `Host` = vRoleHost;
|
||||
|
||||
INSERT INTO mysql.user (
|
||||
`User`,
|
||||
`Host`,
|
||||
`Password`,
|
||||
`authentication_string`,
|
||||
`plugin`,
|
||||
`ssl_type`,
|
||||
`ssl_cipher`,
|
||||
`x509_issuer`,
|
||||
`x509_subject`,
|
||||
`max_questions`,
|
||||
`max_updates`,
|
||||
`max_connections`,
|
||||
`max_user_connections`
|
||||
)
|
||||
SELECT
|
||||
`User`,
|
||||
`Host`,
|
||||
vPassword,
|
||||
`authentication_string`,
|
||||
`plugin`,
|
||||
`ssl_type`,
|
||||
`ssl_cipher`,
|
||||
`x509_issuer`,
|
||||
`x509_subject`,
|
||||
`max_questions`,
|
||||
`max_updates`,
|
||||
`max_connections`,
|
||||
`max_user_connections`
|
||||
FROM tUser;
|
||||
ELSE
|
||||
INSERT INTO mysql.user (
|
||||
`User`,
|
||||
`Host`,
|
||||
`authentication_string`,
|
||||
`plugin`,
|
||||
`ssl_type`,
|
||||
`ssl_cipher`,
|
||||
`x509_issuer`,
|
||||
`x509_subject`,
|
||||
`max_questions`,
|
||||
`max_updates`,
|
||||
`max_connections`,
|
||||
`max_user_connections`
|
||||
)
|
||||
SELECT
|
||||
`User`,
|
||||
`Host`,
|
||||
`authentication_string`,
|
||||
`plugin`,
|
||||
`ssl_type`,
|
||||
`ssl_cipher`,
|
||||
`x509_issuer`,
|
||||
`x509_subject`,
|
||||
`max_questions`,
|
||||
`max_updates`,
|
||||
`max_connections`,
|
||||
`max_user_connections`
|
||||
FROM tUser;
|
||||
END IF;
|
||||
|
||||
DROP TEMPORARY TABLE IF EXISTS tUser;
|
||||
ELSE
|
||||
INSERT INTO mysql.global_priv (
|
||||
`User`,
|
||||
`Host`,
|
||||
`Priv`
|
||||
)
|
||||
SELECT
|
||||
r.prefixedRole,
|
||||
vTplHost,
|
||||
JSON_MERGE_PATCH(
|
||||
IFNULL(t.`Priv`, '{}'),
|
||||
IFNULL(u.`Priv`, '{}'),
|
||||
JSON_OBJECT(
|
||||
'mysql_old_password', JSON_VALUE(t.`Priv`, '$.mysql_old_password'),
|
||||
'mysql_native_password', JSON_VALUE(t.`Priv`, '$.mysql_native_password'),
|
||||
'authentication_string', JSON_VALUE(t.`Priv`, '$.authentication_string'),
|
||||
'ssl_type', JSON_VALUE(t.`Priv`, '$.ssl_type')
|
||||
)
|
||||
)
|
||||
FROM tRole r
|
||||
LEFT JOIN mysql.global_priv t
|
||||
ON t.`User` = vTplUser
|
||||
AND t.`Host` = vRoleHost
|
||||
LEFT JOIN mysql.global_priv u
|
||||
ON u.`User` = r.role
|
||||
AND u.`Host` = vRoleHost;
|
||||
END IF;
|
||||
|
||||
INSERT INTO mysql.proxies_priv (
|
||||
`User`,
|
||||
`Host`,
|
||||
`Proxied_user`,
|
||||
`Proxied_host`,
|
||||
`Grantor`
|
||||
)
|
||||
SELECT
|
||||
'',
|
||||
vAllHost,
|
||||
prefixedRole,
|
||||
vTplHost,
|
||||
CONCAT(prefixedRole, '@', vTplHost)
|
||||
FROM tRole;
|
||||
|
||||
-- Copies global privileges
|
||||
|
||||
DROP TEMPORARY TABLE IF EXISTS tUserPriv;
|
||||
|
||||
IF vIsMysql THEN
|
||||
CREATE TEMPORARY TABLE tUserPriv
|
||||
(INDEX (prefixedRole))
|
||||
ENGINE = MEMORY
|
||||
SELECT
|
||||
r.prefixedRole,
|
||||
MAX(u.`Select_priv`) `Select_priv`,
|
||||
MAX(u.`Insert_priv`) `Insert_priv`,
|
||||
MAX(u.`Update_priv`) `Update_priv`,
|
||||
MAX(u.`Delete_priv`) `Delete_priv`,
|
||||
MAX(u.`Create_priv`) `Create_priv`,
|
||||
MAX(u.`Drop_priv`) `Drop_priv`,
|
||||
MAX(u.`Reload_priv`) `Reload_priv`,
|
||||
MAX(u.`Shutdown_priv`) `Shutdown_priv`,
|
||||
MAX(u.`Process_priv`) `Process_priv`,
|
||||
MAX(u.`File_priv`) `File_priv`,
|
||||
MAX(u.`Grant_priv`) `Grant_priv`,
|
||||
MAX(u.`References_priv`) `References_priv`,
|
||||
MAX(u.`Index_priv`) `Index_priv`,
|
||||
MAX(u.`Alter_priv`) `Alter_priv`,
|
||||
MAX(u.`Show_db_priv`) `Show_db_priv`,
|
||||
MAX(u.`Super_priv`) `Super_priv`,
|
||||
MAX(u.`Create_tmp_table_priv`) `Create_tmp_table_priv`,
|
||||
MAX(u.`Lock_tables_priv`) `Lock_tables_priv`,
|
||||
MAX(u.`Execute_priv`) `Execute_priv`,
|
||||
MAX(u.`Repl_slave_priv`) `Repl_slave_priv`,
|
||||
MAX(u.`Repl_client_priv`) `Repl_client_priv`,
|
||||
MAX(u.`Create_view_priv`) `Create_view_priv`,
|
||||
MAX(u.`Show_view_priv`) `Show_view_priv`,
|
||||
MAX(u.`Create_routine_priv`) `Create_routine_priv`,
|
||||
MAX(u.`Alter_routine_priv`) `Alter_routine_priv`,
|
||||
MAX(u.`Create_user_priv`) `Create_user_priv`,
|
||||
MAX(u.`Event_priv`) `Event_priv`,
|
||||
MAX(u.`Trigger_priv`) `Trigger_priv`,
|
||||
MAX(u.`Create_tablespace_priv`) `Create_tablespace_priv`
|
||||
FROM tRoleInherit r
|
||||
JOIN mysql.user u
|
||||
ON u.`User` = r.inheritsFrom
|
||||
AND u.`Host`= vRoleHost
|
||||
GROUP BY r.prefixedRole;
|
||||
|
||||
UPDATE mysql.user u
|
||||
JOIN tUserPriv t
|
||||
ON u.`User` = t.prefixedRole
|
||||
AND u.`Host` = vTplHost
|
||||
SET
|
||||
u.`Select_priv`
|
||||
= t.`Select_priv`,
|
||||
u.`Insert_priv`
|
||||
= t.`Insert_priv`,
|
||||
u.`Update_priv`
|
||||
= t.`Update_priv`,
|
||||
u.`Delete_priv`
|
||||
= t.`Delete_priv`,
|
||||
u.`Create_priv`
|
||||
= t.`Create_priv`,
|
||||
u.`Drop_priv`
|
||||
= t.`Drop_priv`,
|
||||
u.`Reload_priv`
|
||||
= t.`Reload_priv`,
|
||||
u.`Shutdown_priv`
|
||||
= t.`Shutdown_priv`,
|
||||
u.`Process_priv`
|
||||
= t.`Process_priv`,
|
||||
u.`File_priv`
|
||||
= t.`File_priv`,
|
||||
u.`Grant_priv`
|
||||
= t.`Grant_priv`,
|
||||
u.`References_priv`
|
||||
= t.`References_priv`,
|
||||
u.`Index_priv`
|
||||
= t.`Index_priv`,
|
||||
u.`Alter_priv`
|
||||
= t.`Alter_priv`,
|
||||
u.`Show_db_priv`
|
||||
= t.`Show_db_priv`,
|
||||
u.`Super_priv`
|
||||
= t.`Super_priv`,
|
||||
u.`Create_tmp_table_priv`
|
||||
= t.`Create_tmp_table_priv`,
|
||||
u.`Lock_tables_priv`
|
||||
= t.`Lock_tables_priv`,
|
||||
u.`Execute_priv`
|
||||
= t.`Execute_priv`,
|
||||
u.`Repl_slave_priv`
|
||||
= t.`Repl_slave_priv`,
|
||||
u.`Repl_client_priv`
|
||||
= t.`Repl_client_priv`,
|
||||
u.`Create_view_priv`
|
||||
= t.`Create_view_priv`,
|
||||
u.`Show_view_priv`
|
||||
= t.`Show_view_priv`,
|
||||
u.`Create_routine_priv`
|
||||
= t.`Create_routine_priv`,
|
||||
u.`Alter_routine_priv`
|
||||
= t.`Alter_routine_priv`,
|
||||
u.`Create_user_priv`
|
||||
= t.`Create_user_priv`,
|
||||
u.`Event_priv`
|
||||
= t.`Event_priv`,
|
||||
u.`Trigger_priv`
|
||||
= t.`Trigger_priv`,
|
||||
u.`Create_tablespace_priv`
|
||||
= t.`Create_tablespace_priv`;
|
||||
ELSE
|
||||
CREATE TEMPORARY TABLE tUserPriv
|
||||
(INDEX (prefixedRole))
|
||||
SELECT
|
||||
r.prefixedRole,
|
||||
BIT_OR(JSON_VALUE(p.`Priv`, '$.access')) access
|
||||
FROM tRoleInherit r
|
||||
JOIN mysql.global_priv p
|
||||
ON p.`User` = r.inheritsFrom
|
||||
AND p.`Host`= vRoleHost
|
||||
GROUP BY r.prefixedRole;
|
||||
|
||||
UPDATE mysql.global_priv p
|
||||
JOIN tUserPriv t
|
||||
ON p.`User` = t.prefixedRole
|
||||
AND p.`Host` = vTplHost
|
||||
SET
|
||||
p.`Priv` = JSON_SET(p.`Priv`, '$.access', t.access);
|
||||
END IF;
|
||||
|
||||
DROP TEMPORARY TABLE tUserPriv;
|
||||
|
||||
-- Copy schema level privileges
|
||||
|
||||
INSERT INTO mysql.db (
|
||||
`User`,
|
||||
`Host`,
|
||||
`Db`,
|
||||
`Select_priv`,
|
||||
`Insert_priv`,
|
||||
`Update_priv`,
|
||||
`Delete_priv`,
|
||||
`Create_priv`,
|
||||
`Drop_priv`,
|
||||
`Grant_priv`,
|
||||
`References_priv`,
|
||||
`Index_priv`,
|
||||
`Alter_priv`,
|
||||
`Create_tmp_table_priv`,
|
||||
`Lock_tables_priv`,
|
||||
`Create_view_priv`,
|
||||
`Show_view_priv`,
|
||||
`Create_routine_priv`,
|
||||
`Alter_routine_priv`,
|
||||
`Execute_priv`,
|
||||
`Event_priv`,
|
||||
`Trigger_priv`
|
||||
)
|
||||
SELECT
|
||||
r.prefixedRole,
|
||||
vTplHost,
|
||||
t.`Db`,
|
||||
MAX(t.`Select_priv`),
|
||||
MAX(t.`Insert_priv`),
|
||||
MAX(t.`Update_priv`),
|
||||
MAX(t.`Delete_priv`),
|
||||
MAX(t.`Create_priv`),
|
||||
MAX(t.`Drop_priv`),
|
||||
MAX(t.`Grant_priv`),
|
||||
MAX(t.`References_priv`),
|
||||
MAX(t.`Index_priv`),
|
||||
MAX(t.`Alter_priv`),
|
||||
MAX(t.`Create_tmp_table_priv`),
|
||||
MAX(t.`Lock_tables_priv`),
|
||||
MAX(t.`Create_view_priv`),
|
||||
MAX(t.`Show_view_priv`),
|
||||
MAX(t.`Create_routine_priv`),
|
||||
MAX(t.`Alter_routine_priv`),
|
||||
MAX(t.`Execute_priv`),
|
||||
MAX(t.`Event_priv`),
|
||||
MAX(t.`Trigger_priv`)
|
||||
FROM tRoleInherit r
|
||||
JOIN mysql.db t
|
||||
ON t.`User` = r.inheritsFrom
|
||||
AND t.`Host`= vRoleHost
|
||||
GROUP BY r.prefixedRole, t.`Db`;
|
||||
|
||||
-- Copy table level privileges
|
||||
|
||||
INSERT INTO mysql.tables_priv (
|
||||
`User`,
|
||||
`Host`,
|
||||
`Db`,
|
||||
`Table_name`,
|
||||
`Grantor`,
|
||||
`Timestamp`,
|
||||
`Table_priv`,
|
||||
`Column_priv`
|
||||
)
|
||||
SELECT
|
||||
r.prefixedRole,
|
||||
vTplHost,
|
||||
t.`Db`,
|
||||
t.`Table_name`,
|
||||
t.`Grantor`,
|
||||
MAX(t.`Timestamp`),
|
||||
IFNULL(GROUP_CONCAT(NULLIF(t.`Table_priv`, '')), ''),
|
||||
IFNULL(GROUP_CONCAT(NULLIF(t.`Column_priv`, '')), '')
|
||||
FROM tRoleInherit r
|
||||
JOIN mysql.tables_priv t
|
||||
ON t.`User` = r.inheritsFrom
|
||||
AND t.`Host`= vRoleHost
|
||||
GROUP BY r.prefixedRole, t.`Db`, t.`Table_name`;
|
||||
|
||||
-- Copy column level privileges
|
||||
|
||||
INSERT INTO mysql.columns_priv (
|
||||
`User`,
|
||||
`Host`,
|
||||
`Db`,
|
||||
`Table_name`,
|
||||
`Column_name`,
|
||||
`Timestamp`,
|
||||
`Column_priv`
|
||||
)
|
||||
SELECT
|
||||
r.prefixedRole,
|
||||
vTplHost,
|
||||
t.`Db`,
|
||||
t.`Table_name`,
|
||||
t.`Column_name`,
|
||||
MAX(t.`Timestamp`),
|
||||
IFNULL(GROUP_CONCAT(NULLIF(t.`Column_priv`, '')), '')
|
||||
FROM tRoleInherit r
|
||||
JOIN mysql.columns_priv t
|
||||
ON t.`User` = r.inheritsFrom
|
||||
AND t.`Host`= vRoleHost
|
||||
GROUP BY r.prefixedRole, t.`Db`, t.`Table_name`, t.`Column_name`;
|
||||
|
||||
-- Copy routine privileges
|
||||
|
||||
INSERT IGNORE INTO mysql.procs_priv (
|
||||
`User`,
|
||||
`Host`,
|
||||
`Db`,
|
||||
`Routine_name`,
|
||||
`Routine_type`,
|
||||
`Grantor`,
|
||||
`Timestamp`,
|
||||
`Proc_priv`
|
||||
)
|
||||
SELECT
|
||||
r.prefixedRole,
|
||||
vTplHost,
|
||||
t.`Db`,
|
||||
t.`Routine_name`,
|
||||
t.`Routine_type`,
|
||||
t.`Grantor`,
|
||||
t.`Timestamp`,
|
||||
t.`Proc_priv`
|
||||
FROM tRoleInherit r
|
||||
JOIN mysql.procs_priv t
|
||||
ON t.`User` = r.inheritsFrom
|
||||
AND t.`Host`= vRoleHost;
|
||||
|
||||
-- Free memory
|
||||
|
||||
DROP TEMPORARY TABLE
|
||||
tRole,
|
||||
tRoleInherit;
|
||||
|
||||
FLUSH PRIVILEGES;
|
||||
END$$
|
||||
DELIMITER ;
|
|
@ -1,36 +0,0 @@
|
|||
ALTER TABLE account.sambaConfig ADD adUser VARCHAR(255) DEFAULT NULL NULL COMMENT 'Active directory user';
|
||||
ALTER TABLE account.sambaConfig ADD adPassword varchar(255) DEFAULT NULL NULL COMMENT 'Active directory password';
|
||||
ALTER TABLE account.sambaConfig ADD userDn varchar(255) DEFAULT NULL NULL COMMENT 'The base DN for users';
|
||||
ALTER TABLE account.sambaConfig DROP COLUMN uidBase;
|
||||
ALTER TABLE account.sambaConfig CHANGE sshPass sshPassword varchar(255) DEFAULT NULL NULL COMMENT 'The SSH password';
|
||||
|
||||
ALTER TABLE account.ldapConfig DROP COLUMN `filter`;
|
||||
ALTER TABLE account.ldapConfig CHANGE baseDn userDn varchar(255) DEFAULT NULL NULL COMMENT 'The base DN to do the query';
|
||||
ALTER TABLE account.ldapConfig CHANGE host server varchar(255) NOT NULL COMMENT 'The hostname of LDAP server';
|
||||
ALTER TABLE account.ldapConfig MODIFY COLUMN password varchar(255) NOT NULL COMMENT 'The LDAP password';
|
||||
|
||||
-- Updated
|
||||
|
||||
ALTER TABLE account.sambaConfig DROP COLUMN sshUser;
|
||||
ALTER TABLE account.sambaConfig DROP COLUMN sshPassword;
|
||||
ALTER TABLE account.sambaConfig CHANGE host adController varchar(255) DEFAULT NULL NULL COMMENT 'The hosname of domain controller';
|
||||
ALTER TABLE account.sambaConfig MODIFY COLUMN adController varchar(255) DEFAULT NULL NULL COMMENT 'The hosname of domain controller';
|
||||
|
||||
ALTER TABLE account.sambaConfig DROP COLUMN userDn;
|
||||
ALTER TABLE account.sambaConfig ADD adDomain varchar(255) NOT NULL AFTER id;
|
||||
ALTER TABLE account.sambaConfig ADD verifyCert TINYINT UNSIGNED NOT NULL DEFAULT TRUE AFTER adPassword;
|
||||
ALTER TABLE account.sambaConfig MODIFY COLUMN adController varchar(255) NOT NULL COMMENT 'The hosname of domain controller';
|
||||
|
||||
ALTER TABLE account.user
|
||||
ADD COLUMN `realm` varchar(512) CHARACTER SET utf8 DEFAULT NULL AFTER id,
|
||||
ADD COLUMN `emailVerified` tinyint(1) DEFAULT NULL AFTER email,
|
||||
ADD COLUMN `verificationToken` varchar(512) DEFAULT NULL AFTER emailVerified;
|
||||
|
||||
DROP TABLE salix.user;
|
||||
|
||||
CREATE OR REPLACE VIEW salix.User
|
||||
AS SELECT id, realm, name AS username, bcryptPassword AS password, email, emailVerified, verificationToken
|
||||
FROM account.user;
|
||||
|
||||
ALTER TABLE account.`user`
|
||||
MODIFY COLUMN bcryptPassword varchar(512) DEFAULT NULL NULL;
|
|
@ -1,20 +0,0 @@
|
|||
CREATE TABLE `vn`.`supplierLog` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`originFk` int(11) NOT NULL,
|
||||
`userFk` int(10) unsigned NOT NULL,
|
||||
`action` set('insert','update','delete') COLLATE utf8_unicode_ci NOT NULL,
|
||||
`creationDate` timestamp NULL DEFAULT current_timestamp(),
|
||||
`description` text CHARACTER SET utf8 DEFAULT NULL,
|
||||
`changedModel` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
|
||||
`oldInstance` text COLLATE utf8_unicode_ci DEFAULT NULL,
|
||||
`newInstance` text COLLATE utf8_unicode_ci DEFAULT NULL,
|
||||
`changedModelId` int(11) DEFAULT NULL,
|
||||
`changedModelValue` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `logSupplier_ibfk_1` (`originFk`),
|
||||
KEY `supplierLog_ibfk_2` (`userFk`),
|
||||
CONSTRAINT `supplierLog_ibfk_1` FOREIGN KEY (`originFk`) REFERENCES `supplier` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
CONSTRAINT `supplierLog_ibfk_2` FOREIGN KEY (`userFk`) REFERENCES `account`.`user` (`id`) ON UPDATE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
||||
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
CREATE TABLE `vn`.`supplierContact` (
|
||||
`id` INT(11) NOT NULL AUTO_INCREMENT,
|
||||
`supplierFk` INT(11) NULL DEFAULT NULL,
|
||||
`phone` VARCHAR(16) NULL DEFAULT NULL,
|
||||
`mobile` VARCHAR(16) NULL DEFAULT NULL,
|
||||
`email` VARCHAR(255) NULL DEFAULT NULL,
|
||||
`observation` TEXT NULL DEFAULT NULL,
|
||||
`name` VARCHAR(255) NULL DEFAULT NULL,
|
||||
PRIMARY KEY (`id`))
|
||||
ENGINE = InnoDB;
|
||||
|
||||
|
||||
ALTER TABLE `vn`.`supplierContact`
|
||||
ADD CONSTRAINT `supplier_id`
|
||||
FOREIGN KEY (`supplierFk`)
|
||||
REFERENCES `vn`.`supplier` (`id`)
|
||||
ON DELETE CASCADE
|
||||
ON UPDATE CASCADE;
|
||||
|
||||
INSERT INTO vn.supplierContact(supplierFk,phone,mobile,email,observation,`name`)
|
||||
SELECT r.Id_Proveedor,c.Telefono,c.Movil,c.email,c.Notas,concat(c.Nombre," ", IFNULL(c.Apellidos,""))
|
||||
FROM vn2008.Contactos c
|
||||
JOIN vn2008.Relaciones r ON r.Id_Contacto = c.Id_Contacto
|
||||
JOIN vn.supplier s ON s.id = r.Id_Proveedor;
|
|
@ -1,25 +0,0 @@
|
|||
DROP TRIGGER IF EXISTS `vn`.`ticket_afterUpdate`;
|
||||
|
||||
DELIMITER $$
|
||||
USE `vn`$$
|
||||
CREATE DEFINER=`root`@`%` TRIGGER `ticket_afterUpdate`
|
||||
AFTER UPDATE ON `ticket`
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
IF !(NEW.id <=> OLD.id)
|
||||
OR !(NEW.warehouseFk <=> OLD.warehouseFk)
|
||||
OR !(NEW.shipped <=> OLD.shipped) THEN
|
||||
CALL stock.log_add('ticket', NEW.id, OLD.id);
|
||||
END IF;
|
||||
|
||||
IF NEW.clientFk = 2067 AND !(NEW.clientFk <=> OLD.clientFk) THEN
|
||||
-- Fallo que se insertan no se sabe como tickets en este cliente
|
||||
INSERT INTO vn.mail SET
|
||||
`sender` = 'jgallego@verdnatura.es',
|
||||
`replyTo` = 'jgallego@verdnatura.es',
|
||||
`subject` = 'Modificado ticket al cliente 2067',
|
||||
`body` = CONCAT(account.myUserGetName(), ' ha modificado el ticket ',
|
||||
NEW.id);
|
||||
END IF;
|
||||
END$$
|
||||
DELIMITER ;
|
|
@ -1,107 +0,0 @@
|
|||
USE `vn`;
|
||||
DROP procedure IF EXISTS `ticket_componentPreview`;
|
||||
|
||||
DELIMITER $$
|
||||
USE `vn`$$
|
||||
CREATE DEFINER=`root`@`%` PROCEDURE `ticket_componentPreview`(
|
||||
vTicketFk INT,
|
||||
vLanded DATE,
|
||||
vAddressFk INT,
|
||||
vZoneFk INT,
|
||||
vWarehouseFk SMALLINT)
|
||||
BEGIN
|
||||
/**
|
||||
* Calcula los componentes de los articulos de un ticket
|
||||
*
|
||||
* @param vTicketFk id del ticket
|
||||
* @param vLanded nueva fecha de entrega
|
||||
* @param vAddressFk nuevo consignatario
|
||||
* @param vZoneFk nueva zona
|
||||
* @param vWarehouseFk nuevo warehouse
|
||||
*
|
||||
* @return tmp.ticketComponentPreview (warehouseFk, itemFk, componentFk, cost)
|
||||
*/
|
||||
DECLARE vHasDataChanged BOOL DEFAULT FALSE;
|
||||
DECLARE vHasAddressChanged BOOL;
|
||||
DECLARE vHasZoneChanged BOOL DEFAULT FALSE;
|
||||
DECLARE vHasWarehouseChanged BOOL DEFAULT FALSE;
|
||||
|
||||
DECLARE vShipped DATE;
|
||||
DECLARE vAddressTypeRateFk INT DEFAULT NULL;
|
||||
DECLARE vAgencyModeTypeRateFk INT DEFAULT NULL;
|
||||
|
||||
DECLARE vHasChangeAll BOOL DEFAULT FALSE;
|
||||
|
||||
SELECT DATE(landed) <> vLanded,
|
||||
addressFk <> vAddressFk,
|
||||
zoneFk <> vZoneFk,
|
||||
warehouseFk <> vWarehouseFk
|
||||
INTO
|
||||
vHasDataChanged,
|
||||
vHasAddressChanged,
|
||||
vHasZoneChanged,
|
||||
vHasWarehouseChanged
|
||||
FROM vn.ticket t
|
||||
WHERE t.id = vTicketFk;
|
||||
|
||||
IF vHasDataChanged OR vHasWarehouseChanged THEN
|
||||
SET vHasChangeAll = TRUE;
|
||||
END IF;
|
||||
|
||||
IF vHasAddressChanged THEN
|
||||
SET vAddressTypeRateFk = 5;
|
||||
END IF;
|
||||
|
||||
IF vHasZoneChanged THEN
|
||||
SET vAgencyModeTypeRateFk = 6;
|
||||
END IF;
|
||||
|
||||
SELECT TIMESTAMPADD(DAY, -travelingDays, vLanded) INTO vShipped
|
||||
FROM zone
|
||||
WHERE id = vZoneFk;
|
||||
|
||||
CALL buyUltimate(vWarehouseFk, vShipped);
|
||||
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp.ticketLot;
|
||||
CREATE TEMPORARY TABLE tmp.ticketLot ENGINE = MEMORY (
|
||||
SELECT
|
||||
vWarehouseFk AS warehouseFk,
|
||||
NULL AS available,
|
||||
s.itemFk,
|
||||
bu.buyFk,
|
||||
vZoneFk zoneFk
|
||||
FROM sale s
|
||||
LEFT JOIN tmp.buyUltimate bu ON bu.itemFk = s.itemFk
|
||||
WHERE s.ticketFk = vTicketFk
|
||||
GROUP BY bu.warehouseFk, bu.itemFk);
|
||||
|
||||
CALL catalog_componentPrepare();
|
||||
CALL catalog_componentCalculate(vZoneFk, vAddressFk, vShipped, vWarehouseFk);
|
||||
|
||||
REPLACE INTO tmp.ticketComponent (warehouseFk, itemFk, componentFk, cost)
|
||||
SELECT t.warehouseFk, s.itemFk, sc.componentFk, sc.value
|
||||
FROM saleComponent sc
|
||||
JOIN sale s ON s.id = sc.saleFk
|
||||
JOIN ticket t ON t.id = s.ticketFk
|
||||
JOIN `component` c ON c.id = sc.componentFk
|
||||
WHERE s.ticketFk = vTicketFk
|
||||
AND (c.isRenewable = FALSE
|
||||
OR
|
||||
(NOT vHasChangeAll
|
||||
AND (NOT (c.typeFk <=> vAddressTypeRateFk
|
||||
OR c.typeFk <=> vAgencyModeTypeRateFk))));
|
||||
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp.ticketComponentPreview;
|
||||
CREATE TEMPORARY TABLE tmp.ticketComponentPreview
|
||||
SELECT * FROM tmp.ticketComponent;
|
||||
|
||||
CALL catalog_componentPurge();
|
||||
DROP TEMPORARY TABLE tmp.buyUltimate;
|
||||
|
||||
IF vShipped IS NULL THEN
|
||||
CALL util.throw('NO_ZONE_AVAILABLE');
|
||||
END IF;
|
||||
END$$
|
||||
|
||||
DELIMITER ;
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
UPDATE `salix`.`ACL` SET `principalId` = 'deliveryBoss' WHERE (`id` = '194');
|
||||
UPDATE `salix`.`ACL` SET `principalId` = 'claimManager' WHERE (`id` = '97');
|
||||
UPDATE `salix`.`ACL` SET `principalId` = 'claimManager' WHERE (`id` = '100');
|
||||
UPDATE `salix`.`ACL` SET `principalId` = 'claimManager' WHERE (`id` = '103');
|
||||
UPDATE `salix`.`ACL` SET `principalId` = 'claimManager' WHERE (`id` = '202');
|
||||
|
||||
INSERT INTO `salix`.`ACL` (`model`, `property`, `accessType`, `permission`, `principalType`, `principalId`) VALUES ('Town', '*', 'WRITE', 'ALLOW', 'ROLE', 'deliveryBoss');
|
||||
INSERT INTO `salix`.`ACL` (`model`, `property`, `accessType`, `permission`, `principalType`, `principalId`) VALUES ('Province', '*', 'WRITE', 'ALLOW', 'ROLE', 'deliveryBoss');
|
||||
INSERT INTO `salix`.`ACL` (`model`, `property`, `accessType`, `permission`, `principalType`, `principalId`) VALUES ('Supplier', '*', 'READ', 'ALLOW', 'ROLE', 'employee');
|
||||
INSERT INTO `salix`.`ACL` (`model`, `property`, `accessType`, `permission`, `principalType`, `principalId`) VALUES ('Supplier', '*', 'WRITE', 'ALLOW', 'ROLE', 'administrative');
|
||||
INSERT INTO `salix`.`ACL` (`model`, `property`, `accessType`, `permission`, `principalType`, `principalId`) VALUES ('SupplierLog', '*', 'READ', 'ALLOW', 'ROLE', 'employee');
|
||||
INSERT INTO `salix`.`ACL` (`model`, `property`, `accessType`, `permission`, `principalType`, `principalId`) VALUES ('SupplierContact', '*', 'WRITE', 'ALLOW', 'ROLE', 'administrative');
|
|
@ -1,3 +0,0 @@
|
|||
UPDATE `vn`.`claimState` SET `roleFk` = '72' WHERE (`id` = '3');
|
||||
UPDATE `vn`.`claimState` SET `roleFk` = '72' WHERE (`id` = '4');
|
||||
UPDATE `vn`.`claimState` SET `roleFk` = '72' WHERE (`id` = '5');
|
|
@ -1,5 +0,0 @@
|
|||
|
||||
ALTER TABLE `hedera`.`imageCollection`
|
||||
ADD COLUMN `readRoleFk` VARCHAR(45) NULL DEFAULT NULL AFTER `column`;
|
||||
|
||||
update `hedera`.`imageCollection` set `readRoleFk` = 1;
|
|
@ -1,9 +0,0 @@
|
|||
ALTER TABLE `vn`.`observationType`
|
||||
ADD COLUMN `code` VARCHAR(45) NOT NULL AFTER `description`;
|
||||
|
||||
UPDATE `vn`.`observationType` SET `code` = 'itemPicker' WHERE (`id` = '1');
|
||||
UPDATE `vn`.`observationType` SET `code` = 'packager' WHERE (`id` = '2');
|
||||
UPDATE `vn`.`observationType` SET `code` = 'salesPerson' WHERE (`id` = '4');
|
||||
UPDATE `vn`.`observationType` SET `code` = 'administrative' WHERE (`id` = '5');
|
||||
UPDATE `vn`.`observationType` SET `code` = 'weight' WHERE (`id` = '6');
|
||||
UPDATE `vn`.`observationType` SET `code` = 'delivery' WHERE (`id` = '3');
|
|
@ -1,20 +0,0 @@
|
|||
CREATE TABLE `vn`.`supplierLog` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`originFk` int(11) NOT NULL,
|
||||
`userFk` int(10) unsigned NOT NULL,
|
||||
`action` set('insert','update','delete') COLLATE utf8_unicode_ci NOT NULL,
|
||||
`creationDate` timestamp NULL DEFAULT current_timestamp(),
|
||||
`description` text CHARACTER SET utf8 DEFAULT NULL,
|
||||
`changedModel` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
|
||||
`oldInstance` text COLLATE utf8_unicode_ci DEFAULT NULL,
|
||||
`newInstance` text COLLATE utf8_unicode_ci DEFAULT NULL,
|
||||
`changedModelId` int(11) DEFAULT NULL,
|
||||
`changedModelValue` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `logSupplier_ibfk_1` (`originFk`),
|
||||
KEY `supplierLog_ibfk_2` (`userFk`),
|
||||
CONSTRAINT `supplierLog_ibfk_1` FOREIGN KEY (`originFk`) REFERENCES `supplier` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
CONSTRAINT `supplierLog_ibfk_2` FOREIGN KEY (`userFk`) REFERENCES `account`.`user` (`id`) ON UPDATE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
||||
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
DROP TRIGGER IF EXISTS `vn`.`ticket_afterUpdate`;
|
||||
|
||||
DELIMITER $$
|
||||
USE `vn`$$
|
||||
CREATE DEFINER=`root`@`%` TRIGGER `ticket_afterUpdate`
|
||||
AFTER UPDATE ON `ticket`
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
IF !(NEW.id <=> OLD.id)
|
||||
OR !(NEW.warehouseFk <=> OLD.warehouseFk)
|
||||
OR !(NEW.shipped <=> OLD.shipped) THEN
|
||||
CALL stock.log_add('ticket', NEW.id, OLD.id);
|
||||
END IF;
|
||||
|
||||
IF NEW.clientFk = 2067 AND !(NEW.clientFk <=> OLD.clientFk) THEN
|
||||
-- Fallo que se insertan no se sabe como tickets en este cliente
|
||||
INSERT INTO vn.mail SET
|
||||
`sender` = 'jgallego@verdnatura.es',
|
||||
`replyTo` = 'jgallego@verdnatura.es',
|
||||
`subject` = 'Modificado ticket al cliente 2067',
|
||||
`body` = CONCAT(account.myUserGetName(), ' ha modificado el ticket ',
|
||||
NEW.id);
|
||||
END IF;
|
||||
END$$
|
||||
DELIMITER ;
|
|
@ -1,107 +0,0 @@
|
|||
USE `vn`;
|
||||
DROP procedure IF EXISTS `ticket_componentPreview`;
|
||||
|
||||
DELIMITER $$
|
||||
USE `vn`$$
|
||||
CREATE DEFINER=`root`@`%` PROCEDURE `ticket_componentPreview`(
|
||||
vTicketFk INT,
|
||||
vLanded DATE,
|
||||
vAddressFk INT,
|
||||
vZoneFk INT,
|
||||
vWarehouseFk SMALLINT)
|
||||
BEGIN
|
||||
/**
|
||||
* Calcula los componentes de los articulos de un ticket
|
||||
*
|
||||
* @param vTicketFk id del ticket
|
||||
* @param vLanded nueva fecha de entrega
|
||||
* @param vAddressFk nuevo consignatario
|
||||
* @param vZoneFk nueva zona
|
||||
* @param vWarehouseFk nuevo warehouse
|
||||
*
|
||||
* @return tmp.ticketComponentPreview (warehouseFk, itemFk, componentFk, cost)
|
||||
*/
|
||||
DECLARE vHasDataChanged BOOL DEFAULT FALSE;
|
||||
DECLARE vHasAddressChanged BOOL;
|
||||
DECLARE vHasZoneChanged BOOL DEFAULT FALSE;
|
||||
DECLARE vHasWarehouseChanged BOOL DEFAULT FALSE;
|
||||
|
||||
DECLARE vShipped DATE;
|
||||
DECLARE vAddressTypeRateFk INT DEFAULT NULL;
|
||||
DECLARE vAgencyModeTypeRateFk INT DEFAULT NULL;
|
||||
|
||||
DECLARE vHasChangeAll BOOL DEFAULT FALSE;
|
||||
|
||||
SELECT DATE(landed) <> vLanded,
|
||||
addressFk <> vAddressFk,
|
||||
zoneFk <> vZoneFk,
|
||||
warehouseFk <> vWarehouseFk
|
||||
INTO
|
||||
vHasDataChanged,
|
||||
vHasAddressChanged,
|
||||
vHasZoneChanged,
|
||||
vHasWarehouseChanged
|
||||
FROM vn.ticket t
|
||||
WHERE t.id = vTicketFk;
|
||||
|
||||
IF vHasDataChanged OR vHasWarehouseChanged THEN
|
||||
SET vHasChangeAll = TRUE;
|
||||
END IF;
|
||||
|
||||
IF vHasAddressChanged THEN
|
||||
SET vAddressTypeRateFk = 5;
|
||||
END IF;
|
||||
|
||||
IF vHasZoneChanged THEN
|
||||
SET vAgencyModeTypeRateFk = 6;
|
||||
END IF;
|
||||
|
||||
SELECT TIMESTAMPADD(DAY, -travelingDays, vLanded) INTO vShipped
|
||||
FROM zone
|
||||
WHERE id = vZoneFk;
|
||||
|
||||
CALL buyUltimate(vWarehouseFk, vShipped);
|
||||
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp.ticketLot;
|
||||
CREATE TEMPORARY TABLE tmp.ticketLot ENGINE = MEMORY (
|
||||
SELECT
|
||||
vWarehouseFk AS warehouseFk,
|
||||
NULL AS available,
|
||||
s.itemFk,
|
||||
bu.buyFk,
|
||||
vZoneFk zoneFk
|
||||
FROM sale s
|
||||
LEFT JOIN tmp.buyUltimate bu ON bu.itemFk = s.itemFk
|
||||
WHERE s.ticketFk = vTicketFk
|
||||
GROUP BY bu.warehouseFk, bu.itemFk);
|
||||
|
||||
CALL catalog_componentPrepare();
|
||||
CALL catalog_componentCalculate(vZoneFk, vAddressFk, vShipped, vWarehouseFk);
|
||||
|
||||
REPLACE INTO tmp.ticketComponent (warehouseFk, itemFk, componentFk, cost)
|
||||
SELECT t.warehouseFk, s.itemFk, sc.componentFk, sc.value
|
||||
FROM saleComponent sc
|
||||
JOIN sale s ON s.id = sc.saleFk
|
||||
JOIN ticket t ON t.id = s.ticketFk
|
||||
JOIN `component` c ON c.id = sc.componentFk
|
||||
WHERE s.ticketFk = vTicketFk
|
||||
AND (c.isRenewable = FALSE
|
||||
OR
|
||||
(NOT vHasChangeAll
|
||||
AND (NOT (c.typeFk <=> vAddressTypeRateFk
|
||||
OR c.typeFk <=> vAgencyModeTypeRateFk))));
|
||||
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp.ticketComponentPreview;
|
||||
CREATE TEMPORARY TABLE tmp.ticketComponentPreview
|
||||
SELECT * FROM tmp.ticketComponent;
|
||||
|
||||
CALL catalog_componentPurge();
|
||||
DROP TEMPORARY TABLE tmp.buyUltimate;
|
||||
|
||||
IF vShipped IS NULL THEN
|
||||
CALL util.throw('NO_ZONE_AVAILABLE');
|
||||
END IF;
|
||||
END$$
|
||||
|
||||
DELIMITER ;
|
||||
|
|
@ -1,43 +0,0 @@
|
|||
DROP PROCEDURE IF EXISTS `vn`.`timeControl_calculate`;
|
||||
DELIMITER $$
|
||||
CREATE DEFINER=`root`@`%` PROCEDURE `vn`.`timeControl_calculate`(vDatedFrom DATETIME, vDatedTo DATETIME)
|
||||
BEGIN
|
||||
SET @vIsOdd := TRUE;
|
||||
SET @vUser := NULL;
|
||||
SET @vDated := NULL;
|
||||
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp.timeControlCalculate;
|
||||
|
||||
CREATE TEMPORARY TABLE tmp.timeControlCalculate
|
||||
SELECT
|
||||
userFk,
|
||||
dated,
|
||||
IF( timeWork >= 18000, @timeWork:=timeWork + 1200, @timeWork:=timeWork) timeWorkSeconds,
|
||||
SEC_TO_TIME(@timeWork ) timeWorkSexagesimal,
|
||||
@timeWork / 3600 timeWorkDecimal,
|
||||
timed
|
||||
FROM (SELECT SUM(timeWork) timeWork,
|
||||
userFk,
|
||||
dated,
|
||||
GROUP_CONCAT(DATE_FORMAT(sub.timed,"%H:%i") ORDER BY sub.timed ASC SEPARATOR ' - ') timed
|
||||
FROM (SELECT IF(@vUser = wtc.userFk, @vUser :=@vUser, @vUser := wtc.userFk),
|
||||
IF(@vIsOdd, @vIsOdd := FALSE, @vIsOdd := TRUE),
|
||||
IF(direction='in', @vIsOdd := TRUE, @vIsOdd := @vIsOdd),
|
||||
IF(@vIsOdd, @vLastTimed:=UNIX_TIMESTAMP(timed),@vLastTimed:=@vLastTimed),
|
||||
IF(@vIsOdd, 0, UNIX_TIMESTAMP(timed)-@vLastTimed) timeWork,
|
||||
IF(direction='in', @vDated := DATE(wtc.timed), @vDated :=@vDated) dated,
|
||||
wtc.timed timed,
|
||||
wtc.userFk,
|
||||
direction
|
||||
FROM (SELECT DISTINCT(wtc.id), wtc.userFk, wtc.timed, wtc.direction
|
||||
FROM workerTimeControl wtc
|
||||
JOIN tmp.`user` w ON w.userFk = wtc.userFk
|
||||
WHERE wtc.timed BETWEEN vDatedFrom AND vDatedTo
|
||||
ORDER BY userFk, timed ASC
|
||||
) wtc
|
||||
WHERE wtc.timed BETWEEN vDatedFrom AND vDatedTo
|
||||
) sub
|
||||
GROUP BY userFk, dated
|
||||
)sub2;
|
||||
END$$
|
||||
DELIMITER ;
|
|
@ -1,2 +0,0 @@
|
|||
ALTER TABLE `account`.`user`
|
||||
ADD COLUMN `image` VARCHAR(255) NULL AFTER `password`;
|
|
@ -1,20 +0,0 @@
|
|||
CREATE TABLE `vn`.supplierFreighter
|
||||
(
|
||||
supplierFk INT NOT NULL,
|
||||
CONSTRAINT supplierFreighter_pk
|
||||
PRIMARY KEY (supplierFk),
|
||||
CONSTRAINT supplier_id_fk
|
||||
FOREIGN KEY (supplierFk) REFERENCES supplier (id)
|
||||
ON UPDATE CASCADE ON DELETE CASCADE
|
||||
);
|
||||
|
||||
INSERT IGNORE INTO `vn`.supplierFreighter (supplierFk) VALUES (286);
|
||||
INSERT IGNORE INTO `vn`.supplierFreighter (supplierFk) VALUES (454);
|
||||
INSERT IGNORE INTO `vn`.supplierFreighter (supplierFk) VALUES (582);
|
||||
INSERT IGNORE INTO `vn`.supplierFreighter (supplierFk) VALUES (470);
|
||||
INSERT IGNORE INTO `vn`.supplierFreighter (supplierFk) VALUES (775);
|
||||
INSERT IGNORE INTO `vn`.supplierFreighter (supplierFk) VALUES (812);
|
||||
INSERT IGNORE INTO `vn`.supplierFreighter (supplierFk) VALUES (1112);
|
||||
INSERT IGNORE INTO `vn`.supplierFreighter (supplierFk) VALUES (1242);
|
||||
INSERT IGNORE INTO `vn`.supplierFreighter (supplierFk) VALUES (1281);
|
||||
INSERT IGNORE INTO `vn`.supplierFreighter (supplierFk) VALUES (1765);
|
|
@ -1,7 +0,0 @@
|
|||
ALTER TABLE `vn`.travel
|
||||
DROP FOREIGN KEY travel_ibfk_4;
|
||||
|
||||
ALTER TABLE `vn`.travel
|
||||
ADD CONSTRAINT supplierFreighter_fk_4
|
||||
FOREIGN KEY (cargoSupplierFk) REFERENCES supplierFreighter (supplierFk)
|
||||
ON UPDATE CASCADE ON DELETE SET NULL;
|
|
@ -1,20 +0,0 @@
|
|||
CREATE TABLE `vn`.continent
|
||||
(
|
||||
id TINYINT(4) AUTO_INCREMENT,
|
||||
name VARCHAR(50) NOT NULL,
|
||||
code VARCHAR(2) NOT NULL COLLATE utf8_general_ci,
|
||||
CONSTRAINT continent_pk
|
||||
PRIMARY KEY (id)
|
||||
)
|
||||
COMMENT 'World continents';
|
||||
|
||||
CREATE UNIQUE INDEX continent_name_uindex
|
||||
ON `vn`.continent (name);
|
||||
|
||||
INSERT IGNORE INTO `vn`.continent (`name`, `code`)
|
||||
VALUES
|
||||
('Asia', 'AS'),
|
||||
('América', 'AM'),
|
||||
('África', 'AF'),
|
||||
('Europa', 'EU'),
|
||||
('Oceanía', 'OC');
|
|
@ -1,13 +0,0 @@
|
|||
ALTER TABLE `vn`.`country`
|
||||
ADD COLUMN `continentFk` TINYINT(4) NULL AFTER `ibanLength`,
|
||||
ADD INDEX `continent_id_fk_idx` (`continentFk` ASC);
|
||||
|
||||
ALTER TABLE `vn`.`country`
|
||||
ADD CONSTRAINT `continent_id_fk`
|
||||
FOREIGN KEY (`continentFk`)
|
||||
REFERENCES `vn`.`continent` (`id`)
|
||||
ON DELETE NO ACTION
|
||||
ON UPDATE CASCADE;
|
||||
|
||||
UPDATE `vn`.`country` SET `continentFk` = '2' WHERE (`id` = '11');
|
||||
UPDATE `vn`.`country` SET `continentFk` = '2' WHERE (`id` = '13');
|
|
@ -1 +0,0 @@
|
|||
INSERT INTO salix.ACL (model, property, accessType, permission, principalType, principalId) VALUES ('Image', '*', 'WRITE', 'ALLOW', 'ROLE', 'employee');
|
|
@ -1,14 +0,0 @@
|
|||
CREATE TABLE `vn`.`entryObservation` (
|
||||
id int NOT NULL AUTO_INCREMENT,
|
||||
entryFk int NOT NULL,
|
||||
observationTypeFk TINYINT(3) UNSIGNED,
|
||||
description TEXT,
|
||||
PRIMARY KEY (id),
|
||||
CONSTRAINT entry_id_entryFk
|
||||
FOREIGN KEY (entryFk) REFERENCES entry(id),
|
||||
CONSTRAINT observationType_id_observationTypeFk
|
||||
FOREIGN KEY (observationTypeFk) REFERENCES observationType(id)
|
||||
);
|
||||
|
||||
ALTER TABLE `vn`.`entryObservation`
|
||||
ADD UNIQUE INDEX `entryFk_observationTypeFk_UNIQUE` (`entryFk` ASC,`observationTypeFk` ASC);
|
|
@ -1,135 +0,0 @@
|
|||
-- DROP PROCEDURE `vn`.`clonTravelComplete`;
|
||||
|
||||
DELIMITER $$
|
||||
USE `vn`$$
|
||||
CREATE
|
||||
DEFINER = root@`%` PROCEDURE `vn`.`travel_cloneWithEntries`(IN vTravelFk INT, IN vDateStart DATE, IN vDateEnd DATE,
|
||||
IN vRef VARCHAR(255), OUT vNewTravelFk INT)
|
||||
BEGIN
|
||||
DECLARE vEntryNew INT;
|
||||
DECLARE vDone BOOLEAN DEFAULT FALSE;
|
||||
DECLARE vAuxEntryFk INT;
|
||||
DECLARE vRsEntry CURSOR FOR
|
||||
SELECT e.id
|
||||
FROM entry e
|
||||
JOIN travel t
|
||||
ON t.id = e.travelFk
|
||||
WHERE e.travelFk = vTravelFk;
|
||||
|
||||
DECLARE vRsBuy CURSOR FOR
|
||||
SELECT b.*
|
||||
FROM buy b
|
||||
JOIN entry e
|
||||
ON b.entryFk = e.id
|
||||
WHERE e.travelFk = vNewTravelFk and b.entryFk=vNewTravelFk
|
||||
ORDER BY e.id;
|
||||
|
||||
DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE;
|
||||
|
||||
DECLARE EXIT HANDLER FOR SQLEXCEPTION
|
||||
BEGIN
|
||||
ROLLBACK;
|
||||
RESIGNAL;
|
||||
END;
|
||||
|
||||
START TRANSACTION;
|
||||
|
||||
INSERT INTO travel (shipped,landed, warehouseInFk, warehouseOutFk, agencyFk, ref, isDelivered, isReceived, m3, kg)
|
||||
SELECT vDateStart, vDateEnd,warehouseInFk, warehouseOutFk, agencyFk, vRef, isDelivered, isReceived, m3, kg
|
||||
FROM travel
|
||||
WHERE id = vTravelFk;
|
||||
|
||||
SET vNewTravelFk = LAST_INSERT_ID();
|
||||
SET vDone = FALSE;
|
||||
OPEN vRsEntry ;
|
||||
FETCH vRsEntry INTO vAuxEntryFk;
|
||||
|
||||
WHILE NOT vDone DO
|
||||
INSERT INTO entry (supplierFk,
|
||||
ref,
|
||||
isInventory,
|
||||
isConfirmed,
|
||||
isOrdered,
|
||||
isRaid,
|
||||
commission,
|
||||
created,
|
||||
evaNotes,
|
||||
travelFk,
|
||||
currencyFk,
|
||||
companyFk,
|
||||
gestDocFk,
|
||||
invoiceInFk)
|
||||
SELECT supplierFk,
|
||||
ref,
|
||||
isInventory,
|
||||
isConfirmed,
|
||||
isOrdered,
|
||||
isRaid,
|
||||
commission,
|
||||
created,
|
||||
evaNotes,
|
||||
vNewTravelFk,
|
||||
currencyFk,
|
||||
companyFk,
|
||||
gestDocFk,
|
||||
invoiceInFk
|
||||
FROM entry
|
||||
WHERE id = vAuxEntryFk;
|
||||
|
||||
SET vEntryNew = LAST_INSERT_ID();
|
||||
|
||||
|
||||
INSERT INTO buy (entryFk,
|
||||
itemFk,
|
||||
quantity,
|
||||
buyingValue,
|
||||
packageFk,
|
||||
stickers,
|
||||
freightValue,
|
||||
packageValue,
|
||||
comissionValue,
|
||||
packing,
|
||||
`grouping`,
|
||||
groupingMode,
|
||||
location,
|
||||
price1,
|
||||
price2,
|
||||
price3,
|
||||
minPrice,
|
||||
producer,
|
||||
printedStickers,
|
||||
isChecked,
|
||||
weight)
|
||||
SELECT vEntryNew,
|
||||
itemFk,
|
||||
quantity,
|
||||
buyingValue,
|
||||
packageFk,
|
||||
stickers,
|
||||
freightValue,
|
||||
packageValue,
|
||||
comissionValue,
|
||||
packing,
|
||||
`grouping`,
|
||||
groupingMode,
|
||||
location,
|
||||
price1,
|
||||
price2,
|
||||
price3,
|
||||
minPrice,
|
||||
producer,
|
||||
printedStickers,
|
||||
isChecked,
|
||||
weight
|
||||
FROM buy
|
||||
WHERE entryFk = vAuxEntryFk;
|
||||
|
||||
|
||||
FETCH vRsEntry INTO vAuxEntryFk;
|
||||
END WHILE;
|
||||
CLOSE vRsEntry;
|
||||
COMMIT;
|
||||
END;$$
|
||||
DELIMITER ;
|
||||
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
CREATE TABLE `vn`.`zoneLog` (
|
||||
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`originFk` int(10) NOT NULL,
|
||||
`userFk` int(10) unsigned DEFAULT NULL,
|
||||
`action` set('insert','update','delete') COLLATE utf8_unicode_ci NOT NULL,
|
||||
`creationDate` timestamp NULL DEFAULT current_timestamp(),
|
||||
`description` text CHARACTER SET utf8 DEFAULT NULL,
|
||||
`changedModel` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
|
||||
`oldInstance` text COLLATE utf8_unicode_ci DEFAULT NULL,
|
||||
`newInstance` text COLLATE utf8_unicode_ci DEFAULT NULL,
|
||||
`changedModelId` int(11) DEFAULT NULL,
|
||||
`changedModelValue` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `originFk` (`originFk`),
|
||||
KEY `userFk` (`userFk`),
|
||||
CONSTRAINT `zoneLog_ibfk_1` FOREIGN KEY (`originFk`) REFERENCES `vn`.`zone` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
CONSTRAINT `zoneLog_ibfk_2` FOREIGN KEY (`userFk`) REFERENCES `account`.`user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
|
@ -1,13 +0,0 @@
|
|||
INSERT INTO account.role (id, name, description)
|
||||
VALUES
|
||||
(74, 'userPhotos', 'Privilegios para subir fotos de usuario'),
|
||||
(75, 'catalogPhotos', 'Privilegios para subir fotos del catálogo');
|
||||
|
||||
INSERT INTO account.roleInherit (role, inheritsFrom)
|
||||
VALUES
|
||||
(37, (SELECT id FROM account.role WHERE name = 'userPhotos')),
|
||||
(51, (SELECT id FROM account.role WHERE name = 'userPhotos')),
|
||||
(51, (SELECT id FROM account.role WHERE name = 'catalogPhotos')),
|
||||
(35, (SELECT id FROM account.role WHERE name = 'catalogPhotos'));
|
||||
|
||||
CALL account.role_sync();
|
|
@ -1,27 +0,0 @@
|
|||
ALTER TABLE `hedera`.`imageCollection`
|
||||
ADD writeRoleFk INT UNSIGNED NULL DEFAULT 1;
|
||||
|
||||
ALTER TABLE `hedera`.`imageCollection`
|
||||
ADD CONSTRAINT role_id_writeRoleFk
|
||||
FOREIGN KEY (writeRoleFk) REFERENCES account.role (id)
|
||||
ON UPDATE CASCADE;
|
||||
|
||||
ALTER TABLE `hedera`.`imageCollection` modify readRoleFk INT UNSIGNED default 1 null;
|
||||
|
||||
ALTER TABLE `hedera`.`imageCollection`
|
||||
ADD CONSTRAINT role_id_readRoleFk
|
||||
FOREIGN KEY (readRoleFk) REFERENCES account.role (id)
|
||||
ON UPDATE CASCADE;
|
||||
|
||||
UPDATE hedera.imageCollection t SET t.writeRoleFk = (
|
||||
SELECT id FROM `account`.`role` WHERE name = 'catalogPhotos'
|
||||
)
|
||||
WHERE t.name = 'catalog';
|
||||
|
||||
UPDATE hedera.imageCollection t SET t.writeRoleFk = (
|
||||
SELECT id FROM `account`.`role` WHERE name = 'userPhotos'
|
||||
)
|
||||
WHERE t.name = 'user';
|
||||
|
||||
UPDATE hedera.imageCollection t SET t.writeRoleFk = 9
|
||||
WHERE t.name IN ('link', 'news');
|
|
@ -1,19 +0,0 @@
|
|||
DROP TRIGGER IF EXISTS `vn`.`itemTag_afterUpdate`;
|
||||
|
||||
DELIMITER $$
|
||||
USE `vn`$$
|
||||
CREATE DEFINER=`root`@`%` TRIGGER `vn`.`itemTag_afterUpdate`
|
||||
AFTER UPDATE ON `itemTag` FOR EACH ROW
|
||||
trig: BEGIN
|
||||
IF @isTriggerDisabled THEN
|
||||
LEAVE trig;
|
||||
END IF;
|
||||
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp.item;
|
||||
CREATE TEMPORARY TABLE tmp.item
|
||||
SELECT NEW.itemFk id;
|
||||
|
||||
CALL item_refreshTags();
|
||||
DROP TEMPORARY TABLE tmp.item;
|
||||
END$$
|
||||
DELIMITER ;
|
|
@ -1,5 +0,0 @@
|
|||
INSERT INTO `salix`.`ACL` (`model`, `property`, `accessType`, `permission`, `principalType`, `principalId`) VALUES ('FixedPrice', '*', '*', 'ALLOW', 'ROLE', 'buyer');
|
||||
INSERT INTO `salix`.`ACL` (`model`, `property`, `accessType`, `permission`, `principalType`, `principalId`) VALUES ('PayDem', '*', 'READ', 'ALLOW', 'ROLE', 'employee');
|
||||
INSERT INTO `salix`.`ACL` (`model`, `property`, `accessType`, `permission`, `principalType`, `principalId`) VALUES ('Client', 'createReceipt', '*', 'ALLOW', 'ROLE', 'administrative');
|
||||
INSERT INTO salix.ACL (model, property, accessType, permission, principalType, principalId)
|
||||
VALUES ('PrintServerQueue', '*', 'WRITE', 'ALLOW', 'ROLE', 'employee');
|
|
@ -1,82 +0,0 @@
|
|||
DROP PROCEDURE IF EXISTS vn.ledger_doCompensation;
|
||||
|
||||
|
||||
DELIMITER $$
|
||||
$$
|
||||
CREATE DEFINER=`root`@`%` PROCEDURE `vn`.`ledger_doCompensation`(vDated DATE, vCompensationAccount VARCHAR(10) , vBankFk VARCHAR(10), vConcept VARCHAR(255), vAmount DECIMAL(10,2), vCompanyFk INT, vOriginalAccount VARCHAR(10))
|
||||
BEGIN
|
||||
/**
|
||||
* Compensa un pago o un recibo insertando en contabilidad
|
||||
*
|
||||
* @param vDated fecha en la cual se anota
|
||||
* @param vCompensationAccount cuenta contable contra la que se compensa
|
||||
* @param vBankFk banco de la compensacion
|
||||
* @param vConcept descripcion
|
||||
* @param vAmount cantidad que se compensa
|
||||
* @param vCompany empresa
|
||||
* @param vOriginalAccount cuenta contable desde la cual se compensa
|
||||
*
|
||||
*/
|
||||
DECLARE vNewBookEntry INT;
|
||||
DECLARE vIsClientCompensation INT;
|
||||
DECLARE vClientFk INT;
|
||||
DECLARE vSupplierFk INT;
|
||||
DECLARE vIsOriginalAClient BOOL;
|
||||
DECLARE vPayMethodCompensation INT;
|
||||
|
||||
CALL ledger_next(vNewBookEntry);
|
||||
|
||||
SELECT COUNT(id) INTO vIsOriginalAClient FROM client WHERE accountingAccount LIKE vOriginalAccount COLLATE utf8_general_ci;
|
||||
|
||||
SELECT id, COUNT(id) INTO vClientFk, vIsClientCompensation
|
||||
FROM client
|
||||
WHERE accountingAccount LIKE vCompensationAccount COLLATE utf8_general_ci;
|
||||
|
||||
SET @vAmount1:= 0.0;
|
||||
SET @vAmount2:= 0.0;
|
||||
|
||||
INSERT INTO XDiario (ASIEN, FECHA, SUBCTA, CONTRA, CONCEPTO, EURODEBE, EUROHABER, empresa_id)
|
||||
VALUES ( vNewBookEntry,
|
||||
vDated,
|
||||
vOriginalAccount,
|
||||
vCompensationAccount,
|
||||
vConcept,
|
||||
@vAmount1:= IF(
|
||||
(vIsOriginalAClient OR NOT vIsOriginalAClient)
|
||||
AND vAmount > 0,
|
||||
0,
|
||||
ABS(vAmount)
|
||||
),
|
||||
@vAmount2:= IF(@vAmount1,
|
||||
0,
|
||||
ABS(vAmount)
|
||||
),
|
||||
vCompanyFk
|
||||
),
|
||||
( vNewBookEntry,
|
||||
vDated,
|
||||
vCompensationAccount,
|
||||
vOriginalAccount,
|
||||
vConcept,
|
||||
@vAmount2,
|
||||
@vAmount1,
|
||||
vCompanyFk);
|
||||
|
||||
IF vIsClientCompensation THEN
|
||||
IF vIsOriginalAClient THEN
|
||||
SET vAmount = -vAmount;
|
||||
END IF;
|
||||
INSERT INTO receipt(invoiceFk, amountPaid, payed, bankFk, companyFk, clientFk, isConciliate)
|
||||
VALUES (vConcept, vAmount, vDated, vBankFk, vCompanyFk, vClientFk, TRUE);
|
||||
ELSE
|
||||
IF NOT vIsOriginalAClient THEN
|
||||
SET vAmount = -vAmount;
|
||||
END IF;
|
||||
SELECT id INTO vSupplierFk FROM supplier WHERE `account` LIKE vCompensationAccount COLLATE utf8_general_ci;
|
||||
SELECT id INTO vPayMethodCompensation FROM payMethod WHERE `code` = 'compensation';
|
||||
|
||||
INSERT INTO payment (received, dueDated, supplierFk, amount, bankFk, payMethodFk, concept, companyFk, isConciliated)
|
||||
VALUES(vDated, vDated, vSupplierFk, vAmount, vBankFk, vPayMethodCompensation, vConcept, vCompanyFk, TRUE);
|
||||
END IF;
|
||||
END$$
|
||||
DELIMITER ;
|
|
@ -1,17 +0,0 @@
|
|||
DROP TRIGGER IF EXISTS vn.receipt_beforInsert;
|
||||
|
||||
DELIMITER $$
|
||||
$$
|
||||
CREATE TRIGGER receipt_beforInsert
|
||||
BEFORE INSERT
|
||||
ON receipt FOR EACH ROW
|
||||
BEGIN
|
||||
SELECT isAutoConciliated INTO @isAutoConciliated
|
||||
FROM accounting a
|
||||
JOIN accountingType at2 ON at2.id = a.accountingTypeFk
|
||||
WHERE a.id =NEW.bankFk;
|
||||
|
||||
SET NEW.isConciliate = @isAutoConciliated;
|
||||
END
|
||||
$$
|
||||
DELIMITER ;
|
|
@ -1,3 +1,5 @@
|
|||
INSERT INTO `salix`.`ACL` (`model`, `property`, `accessType`, `permission`, `principalType`, `principalId`)
|
||||
VALUES
|
||||
('Entry', '*', '*', 'ALLOW', 'ROLE', 'administrative');
|
||||
('SupplierAccount', '*', '*', 'ALLOW', 'ROLE', 'administrative'),
|
||||
('Entry', '*', '*', 'ALLOW', 'ROLE', 'administrative'),
|
||||
('InvoiceIn', '*', '*', 'ALLOW', 'ROLE', 'administrative');
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
INSERT INTO `salix`.`ACL` (`model`, `property`, `accessType`, `permission`, `principalType`, `principalId`)
|
||||
VALUES
|
||||
('StarredModule', '*', '*', 'ALLOW', 'ROLE', 'employee'),
|
||||
('ItemBotanical', '*', 'WRITE', 'ALLOW', 'ROLE', 'logisticBoss');
|
|
@ -0,0 +1,20 @@
|
|||
CREATE TABLE `salix`.`module` (
|
||||
`code` VARCHAR(45) COLLATE utf8_unicode_ci NOT NULL,
|
||||
PRIMARY KEY (`code`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
||||
|
||||
INSERT INTO `salix`.`module`(`code`)
|
||||
VALUES
|
||||
('Items'),
|
||||
('Orders'),
|
||||
('Clients'),
|
||||
('Entries'),
|
||||
('Travels'),
|
||||
('Invoices out'),
|
||||
('Suppliers'),
|
||||
('Claims'),
|
||||
('Routes'),
|
||||
('Tickets'),
|
||||
('Workers'),
|
||||
('Users'),
|
||||
('Zones');
|
|
@ -0,0 +1,10 @@
|
|||
CREATE TABLE `vn`.`starredModule` (
|
||||
`id` INT(11) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`workerFk` INT(10) NOT NULL,
|
||||
`moduleFk` VARCHAR(45) COLLATE utf8_unicode_ci NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `starred_workerFk` (`workerFk`),
|
||||
KEY `starred_moduleFk` (`moduleFk`),
|
||||
CONSTRAINT `starred_workerFk` FOREIGN KEY (`workerFk`) REFERENCES `vn`.`worker` (`id`) ON UPDATE CASCADE,
|
||||
CONSTRAINT `starred_moduleFk` FOREIGN KEY (`moduleFk`) REFERENCES `salix`.`module` (`code`) ON UPDATE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
|
@ -0,0 +1 @@
|
|||
Delete me
|
|
@ -0,0 +1,4 @@
|
|||
INSERT INTO `salix`.`ACL` (`model`, `property`, `accessType`, `permission`, `principalType`, `principalId`)
|
||||
VALUES
|
||||
('Genus', '*', 'WRITE', 'ALLOW', 'ROLE', 'logisticBoss'),
|
||||
('Specie', '*', 'WRITE', 'ALLOW', 'ROLE', 'logisticBoss');
|
File diff suppressed because one or more lines are too long
|
@ -1064,25 +1064,25 @@ INSERT INTO `vn`.`ticketCollection` (`ticketFk`, `collectionFk`, `level`)
|
|||
VALUES
|
||||
(1, 1, 1);
|
||||
|
||||
INSERT INTO `edi`.`genus`(`genus_id`, `latin_genus_name`, `entry_date`, `expiry_date`, `change_date_time`)
|
||||
INSERT INTO `vn`.`genus`(`id`, `name`)
|
||||
VALUES
|
||||
(1, 'Abelia' , CURDATE(), NULL, CURDATE()),
|
||||
(2, 'Abies', CURDATE(), NULL, CURDATE()),
|
||||
(3, 'Abutilon', CURDATE(), NULL, CURDATE());
|
||||
(1, 'Abelia'),
|
||||
(2, 'Abies'),
|
||||
(3, 'Abutilon');
|
||||
|
||||
INSERT INTO `edi`.`specie`(`specie_id`, `genus_id`, `latin_species_name`, `entry_date`, `expiry_date`, `change_date_time`)
|
||||
INSERT INTO `vn`.`specie`(`id`, `name`)
|
||||
VALUES
|
||||
(1, 1, 'grandiflora', CURDATE(), NULL, CURDATE()),
|
||||
(2, 2, 'procera', CURDATE(), NULL, CURDATE()),
|
||||
(3, 3, 'decurrens', CURDATE(), NULL, CURDATE()),
|
||||
(4, 3, 'dealbata', CURDATE(), NULL, CURDATE());
|
||||
(1, 'grandiflora'),
|
||||
(2, 'procera'),
|
||||
(3, 'decurrens'),
|
||||
(4, 'dealbata');
|
||||
|
||||
INSERT INTO `vn`.`itemBotanical`(`itemFk`, `botanical`, `genusFk`, `specieFk`)
|
||||
INSERT INTO `vn`.`itemBotanical`(`itemFk`, `genusFk`, `specieFk`)
|
||||
VALUES
|
||||
(1, 'Hedera helix', 1, 1),
|
||||
(2, NULL, 2, 2),
|
||||
(3, 'Cycas revoluta', 2, NULL),
|
||||
(4, 'Polygonum', NULL, NULL);
|
||||
(1, 1, 1),
|
||||
(2, 2, 2),
|
||||
(3, 2, NULL),
|
||||
(4, NULL, NULL);
|
||||
|
||||
INSERT INTO `vn`.`tag`(`id`, `code`, `name`, `isFree`, `isQuantitatif`, `sourceTable`, `unit`, `ediTypeFk`, `overwrite`)
|
||||
VALUES
|
||||
|
@ -1233,11 +1233,18 @@ INSERT INTO `vn`.`annualAverageInvoiced`(`clientFk`, `invoiced`)
|
|||
(104, 500),
|
||||
(105, 5000);
|
||||
|
||||
INSERT INTO `vn`.`supplier`(`id`, `name`, `nickname`,`account`,`countryFk`,`nif`,`isFarmer`,`commission`, `created`, `isActive`, `street`, `city`, `provinceFk`, `postCode`, `payMethodFk`, `payDemFk`, `payDay`, `taxTypeSageFk`, `withholdingSageFk`, `transactionTypeSageFk`, `workerFk`)
|
||||
INSERT INTO `vn`.`supplierActivity`(`code`, `name`)
|
||||
VALUES
|
||||
(1, 'Plants SL', 'Plants nick', 4100000001, 1, '06089160W', 0, 0, CURDATE(), 1, 'supplier address 1', 'PONTEVEDRA', 1, 15214, 1, 1, 15, 4, 1, 1, 18),
|
||||
(2, 'Farmer King', 'The farmer', 4000020002, 1, '87945234L', 1, 0, CURDATE(), 1, 'supplier address 2', 'SILLA', 2, 43022, 1, 2, 10, 93, 2, 8, 18),
|
||||
(442, 'Verdnatura Levante SL', 'Verdnatura', 5115000442, 1, '06815934E', 0, 0, CURDATE(), 1, 'supplier address 3', 'SILLA', 1, 43022, 1, 2, 15, 6, 9, 3, 18);
|
||||
('animals', 'Food and complements for pets'),
|
||||
('complements', 'Other complements'),
|
||||
('flowerPlants', 'Wholesale of flowers and plants'),
|
||||
('vegetablesFruits', 'Fruit and vegetable trade');
|
||||
|
||||
INSERT INTO `vn`.`supplier`(`id`, `name`, `nickname`,`account`,`countryFk`,`nif`,`isFarmer`,`commission`, `created`, `isActive`, `street`, `city`, `provinceFk`, `postCode`, `payMethodFk`, `payDemFk`, `payDay`, `taxTypeSageFk`, `withholdingSageFk`, `transactionTypeSageFk`, `workerFk`, `supplierActivityFk`)
|
||||
VALUES
|
||||
(1, 'Plants SL', 'Plants nick', 4100000001, 1, '06089160W', 0, 0, CURDATE(), 1, 'supplier address 1', 'PONTEVEDRA', 1, 15214, 1, 1, 15, 4, 1, 1, 18, 'flowerPlants'),
|
||||
(2, 'Farmer King', 'The farmer', 4000020002, 1, '87945234L', 1, 0, CURDATE(), 1, 'supplier address 2', 'SILLA', 2, 43022, 1, 2, 10, 93, 2, 8, 18, 'animals'),
|
||||
(442, 'Verdnatura Levante SL', 'Verdnatura', 5115000442, 1, '06815934E', 0, 0, CURDATE(), 1, 'supplier address 3', 'SILLA', 1, 43022, 1, 2, 15, 6, 9, 3, 18, 'flowerPlants');
|
||||
|
||||
INSERT INTO `vn`.`supplierContact`(`id`, `supplierFk`, `phone`, `mobile`, `email`, `observation`, `name`)
|
||||
VALUES
|
||||
|
@ -1246,11 +1253,6 @@ INSERT INTO `vn`.`supplierContact`(`id`, `supplierFk`, `phone`, `mobile`, `email
|
|||
(3, 2, 321654987, NULL, 'supplier2@email.es', NULL, NULL),
|
||||
(4, 442, 321654987, NULL, NULL, 'observation442', NULL);
|
||||
|
||||
INSERT INTO `vn`.`supplierFreighter` (`supplierFk`)
|
||||
VALUES
|
||||
(1),
|
||||
(2);
|
||||
|
||||
INSERT INTO `cache`.`cache_calc`(`id`, `cache_id`, `cacheName`, `params`, `last_refresh`, `expires`, `created`, `connection_id`)
|
||||
VALUES
|
||||
(1, 2, 'available', CONCAT_WS('/',1,CURDATE()), CURRENT_TIMESTAMP(), DATE_ADD(CURRENT_TIMESTAMP(),INTERVAL 15 MINUTE), CURDATE(), NULL),
|
||||
|
@ -2174,4 +2176,70 @@ INSERT INTO `hedera`.`image`(`collectionFk`, `name`)
|
|||
|
||||
INSERT INTO `hedera`.`imageCollectionSize`(`id`, `collectionFk`,`width`, `height`)
|
||||
VALUES
|
||||
(1, 4, 160, 160);
|
||||
(1, 4, 160, 160);
|
||||
|
||||
INSERT INTO `vn`.`awb` (id, code, package, weight, created, amount, transitoryFk, taxFk)
|
||||
VALUES
|
||||
(1, '07546501420', 67, 671, CURDATE(), 1761, 1, 1),
|
||||
(2, '07546491421', 252, 2769, CURDATE(), 5231, 1, 1),
|
||||
(3, '07546500823', 102, 1495, CURDATE(), 3221, 1, 1),
|
||||
(4, '99610288821', 252, 2777, CURDATE(), 3641, 1, 1),
|
||||
(5, '07546500834', 229, 3292, CURDATE(), 6601, 2, 1),
|
||||
(6, '22101929561', 37, 458, CURDATE(), 441, 2, 1),
|
||||
(7, '07546491432', 258, 3034, CURDATE(), 6441, 2, 1),
|
||||
(8, '99610288644', 476, 4461, CURDATE(), 5751, 442, 1),
|
||||
(9, '99610289193', 302, 2972, CURDATE(), 3871, 442, 1),
|
||||
(10, '07546500856', 185, 2364, CURDATE(), 5321, 442, 1);
|
||||
|
||||
REPLACE INTO vn.dua (id, code, awbFk, issued, operated, booked, bookEntried, gestdocFk, customsValue, companyFk)
|
||||
VALUES
|
||||
(1, '19ES0028013A481523', 1, CURDATE(), CURDATE(), CURDATE(), CURDATE(), 1, 11276.95, 442),
|
||||
(2, '21ES00280136115760', 2, CURDATE(), CURDATE(), CURDATE(), CURDATE(), 2, 1376.20, 442),
|
||||
(3, '19ES00280131956004', 3, CURDATE(), CURDATE(), CURDATE(), CURDATE(), 3, 14268.50, 442),
|
||||
(4, '19ES00280131955995', 4, CURDATE(), CURDATE(), CURDATE(), CURDATE(), 1, 8242.50, 442),
|
||||
(5, '19ES00280132022070', 5, CURDATE(), CURDATE(), CURDATE(), CURDATE(), 2, 10012.49, 442),
|
||||
(6, '19ES00280132032308', 6, CURDATE(), CURDATE(), CURDATE(), CURDATE(), 2, 19914.25, 442),
|
||||
(7, '19ES00280132025489', 7, DATE_ADD(CURDATE(), INTERVAL -1 MONTH), CURDATE(), CURDATE(), CURDATE(), 2, 1934.06, 442),
|
||||
(8, '19ES00280132025489', 8, DATE_ADD(CURDATE(), INTERVAL -1 MONTH), CURDATE(), CURDATE(), CURDATE(), 2, 3618.52, 442),
|
||||
(9, '19ES00280132025489', 9, DATE_ADD(CURDATE(), INTERVAL -1 MONTH), CURDATE(), CURDATE(), CURDATE(), 2, 7126.23, 442),
|
||||
(10, '19ES00280132025489', 10, DATE_ADD(CURDATE(), INTERVAL -1 MONTH), CURDATE(), CURDATE(), CURDATE(), 2, 4631.45, 442);
|
||||
|
||||
REPLACE INTO `vn`.`invoiceIn`(`id`, `serialNumber`,`serial`, `supplierFk`, `issued`, `created`, `supplierRef`, `isBooked`, `companyFk`, `docFk`)
|
||||
VALUES
|
||||
(1, 1001, 'R', 1, CURDATE(), CURDATE(), 1234, 0, 442, 1),
|
||||
(2, 1002, 'R', 1, CURDATE(), CURDATE(), 1235, 1, 442, 1),
|
||||
(3, 1003, 'R', 1, CURDATE(), CURDATE(), 1236, 0, 442, 1),
|
||||
(4, 1004, 'R', 1, CURDATE(), CURDATE(), 1237, 0, 442, 1),
|
||||
(5, 1005, 'R', 1, CURDATE(), CURDATE(), 1238, 1, 442, 1),
|
||||
(6, 1006, 'R', 2, CURDATE(), CURDATE(), 1239, 0, 442, 1),
|
||||
(7, 1007, 'R', 2, DATE_ADD(CURDATE(), INTERVAL -1 MONTH), DATE_ADD(CURDATE(), INTERVAL -1 MONTH), 1240, 1, 442, 1),
|
||||
(8, 1008, 'R', 2, DATE_ADD(CURDATE(), INTERVAL -1 MONTH), DATE_ADD(CURDATE(), INTERVAL -1 MONTH), 1241, 1, 442, 1),
|
||||
(9, 1009, 'R', 2, DATE_ADD(CURDATE(), INTERVAL -1 MONTH), DATE_ADD(CURDATE(), INTERVAL -1 MONTH), 1242, 1, 442, 1),
|
||||
(10, 1010, 'R', 2, DATE_ADD(CURDATE(), INTERVAL -1 MONTH), DATE_ADD(CURDATE(), INTERVAL -1 MONTH), 1243, 1, 442, 1);
|
||||
|
||||
INSERT INTO `vn`.`invoiceInDueDay`(`invoiceInFk`, `dueDated`, `bankFk`, `amount`)
|
||||
VALUES
|
||||
(1, CURDATE(), 1, 237),
|
||||
(1, CURDATE(), 1, 15.25),
|
||||
(2, CURDATE(), 1, 168),
|
||||
(2, CURDATE(), 1, 55.17),
|
||||
(3, CURDATE(), 1, 87.95),
|
||||
(3, CURDATE(), 1, 7.65),
|
||||
(4, CURDATE(), 1, 373.27),
|
||||
(4, CURDATE(), 1, 73.36),
|
||||
(5, CURDATE(), 1, 64.23),
|
||||
(6, CURDATE(), 1, 32.95),
|
||||
(7, CURDATE(), 1, 58.64);
|
||||
|
||||
INSERT INTO `vn`.`duaInvoiceIn`(`id`, `duaFk`, `invoiceInFk`)
|
||||
VALUES
|
||||
(1, 1, 1),
|
||||
(2, 2, 2),
|
||||
(3, 3, 3),
|
||||
(4, 4, 4),
|
||||
(5, 5, 5),
|
||||
(6, 6, 6),
|
||||
(7, 7, 7),
|
||||
(8, 8, 8),
|
||||
(9, 9, 9),
|
||||
(10, 10, 10);
|
14745
db/dump/structure.sql
14745
db/dump/structure.sql
File diff suppressed because it is too large
Load Diff
|
@ -32,6 +32,7 @@ TABLES=(
|
|||
salix
|
||||
ACL
|
||||
fieldAcl
|
||||
module
|
||||
)
|
||||
dump_tables ${TABLES[@]}
|
||||
|
||||
|
@ -39,9 +40,12 @@ TABLES=(
|
|||
vn
|
||||
alertLevel
|
||||
bookingPlanner
|
||||
cplusInvoiceType472
|
||||
cplusInvoiceType477
|
||||
cplusRectificationType
|
||||
cplusSubjectOp
|
||||
cplusTaxBreak
|
||||
cplusTrascendency472
|
||||
pgc
|
||||
time
|
||||
claimResponsible
|
||||
|
@ -54,6 +58,7 @@ TABLES=(
|
|||
department
|
||||
component
|
||||
componentType
|
||||
continent
|
||||
)
|
||||
dump_tables ${TABLES[@]}
|
||||
|
||||
|
|
|
@ -31,7 +31,6 @@ IGNORETABLES=(
|
|||
--ignore-table=vn.agencyModeZone
|
||||
--ignore-table=vn.agencyProvince
|
||||
--ignore-table=vn.agencyWarehouse
|
||||
--ignore-table=vn.awb
|
||||
--ignore-table=vn.botanicExport__
|
||||
--ignore-table=vn.clientDefaultCompany
|
||||
--ignore-table=vn.color
|
||||
|
@ -39,6 +38,7 @@ IGNORETABLES=(
|
|||
--ignore-table=vn.comparativeFilter
|
||||
--ignore-table=vn.coolerPath
|
||||
--ignore-table=vn.coolerPathDetail
|
||||
--ignore-table=vn.config__
|
||||
--ignore-table=vn.department__
|
||||
--ignore-table=vn.doc
|
||||
--ignore-table=vn.entity
|
||||
|
@ -49,13 +49,8 @@ IGNORETABLES=(
|
|||
--ignore-table=vn.grant
|
||||
--ignore-table=vn.grantGroup
|
||||
--ignore-table=vn.invoiceCorrection__
|
||||
--ignore-table=vn.invoiceIn
|
||||
--ignore-table=vn.invoiceInAwb
|
||||
--ignore-table=vn.invoiceInDueDay
|
||||
--ignore-table=vn.invoiceInEntry
|
||||
--ignore-table=vn.invoiceInIntrastat
|
||||
--ignore-table=vn.invoiceInTax
|
||||
--ignore-table=vn.itemTaxCountrySpain
|
||||
--ignore-table=vn.itemFreeNumber__
|
||||
--ignore-table=vn.mail__
|
||||
--ignore-table=vn.manaSpellers
|
||||
--ignore-table=vn.outgoingInvoiceKk
|
||||
|
@ -69,7 +64,6 @@ IGNORETABLES=(
|
|||
--ignore-table=vn.printingQueue
|
||||
--ignore-table=vn.printServerQueue__
|
||||
--ignore-table=vn.promissoryNote
|
||||
--ignore-table=vn.rate
|
||||
--ignore-table=vn.referenceRate__
|
||||
--ignore-table=vn.routesControl
|
||||
--ignore-table=vn.salesToPrePrepare
|
||||
|
@ -78,6 +72,7 @@ IGNORETABLES=(
|
|||
--ignore-table=vn.ticketeToPreparePrepared
|
||||
--ignore-table=vn.ticketObservation__
|
||||
--ignore-table=vn.ticketRequest__
|
||||
--ignore-table=vn.ticket_print__
|
||||
--ignore-table=vn.ticketToPrepare
|
||||
--ignore-table=vn.till__
|
||||
--ignore-table=vn.travelThermograph__
|
||||
|
|
|
@ -23,6 +23,64 @@ export default {
|
|||
acceptButton: '.vn-confirm.shown button[response=accept]',
|
||||
searchButton: 'vn-searchbar vn-icon[icon="search"]'
|
||||
},
|
||||
moduleIndex: {
|
||||
anyStarredModule: 'vn-home > div:nth-child(1) > div.modules > a',
|
||||
firstModulePinIcon: 'vn-home a:nth-child(1) vn-icon[icon="push_pin"]',
|
||||
firstModuleRemovePinIcon: 'vn-home a:nth-child(1) vn-icon[icon="remove_circle"]'
|
||||
},
|
||||
accountIndex: {
|
||||
addAccount: 'vn-user-index button vn-icon[icon="add"]',
|
||||
newName: 'vn-user-create vn-textfield[ng-model="$ctrl.user.name"]',
|
||||
newNickname: 'vn-user-create vn-textfield[ng-model="$ctrl.user.nickname"]',
|
||||
newEmail: 'vn-user-create vn-textfield[ng-model="$ctrl.user.email"]',
|
||||
newRole: 'vn-user-create vn-autocomplete[ng-model="$ctrl.user.roleFk"]',
|
||||
newPassword: 'vn-user-create vn-textfield[ng-model="$ctrl.user.password"]',
|
||||
createAccountButton: 'vn-user-create button[type="submit"]',
|
||||
},
|
||||
accountBasicData: {
|
||||
name: 'vn-user-basic-data vn-textfield[ng-model="$ctrl.user.name"]',
|
||||
nickname: 'vn-user-basic-data vn-textfield[ng-model="$ctrl.user.nickname"]',
|
||||
email: 'vn-user-basic-data vn-textfield[ng-model="$ctrl.user.email"]',
|
||||
language: 'vn-user-basic-data vn-autocomplete[ng-model="$ctrl.user.lang"]',
|
||||
save: 'vn-user-basic-data button[type="submit"]'
|
||||
},
|
||||
accountRoles: {
|
||||
anyResult: 'vn-user-roles > vn-data-viewer vn-list > a'
|
||||
},
|
||||
accountAliasIndex: {
|
||||
addAlias: 'vn-alias-index button vn-icon[icon="add"]',
|
||||
newName: 'vn-alias-create vn-textfield[ng-model="$ctrl.alias.alias"]',
|
||||
newDescription: 'vn-alias-create vn-textfield[ng-model="$ctrl.alias.description"]',
|
||||
createAliasButton: 'vn-alias-create button[type="submit"]',
|
||||
},
|
||||
accountAliasBasicData: {
|
||||
name: 'vn-alias-basic-data vn-textfield[ng-model="$ctrl.alias.alias"]',
|
||||
description: 'vn-alias-basic-data vn-textfield[ng-model="$ctrl.alias.description"]',
|
||||
save: 'vn-alias-basic-data button[type="submit"]'
|
||||
},
|
||||
accountAliasUsers: {
|
||||
anyResult: 'vn-alias-users > vn-data-viewer vn-tr'
|
||||
},
|
||||
accountRoleIndex: {
|
||||
addRole: 'vn-role-index button vn-icon[icon="add"]',
|
||||
newName: 'vn-role-create vn-textfield[ng-model="$ctrl.role.name"]',
|
||||
newDescription: 'vn-role-create vn-textfield[ng-model="$ctrl.role.description"]',
|
||||
createRoleButton: 'vn-role-create button[type="submit"]',
|
||||
},
|
||||
accountRoleBasicData: {
|
||||
name: 'vn-role-basic-data vn-textfield[ng-model="$ctrl.role.name"]',
|
||||
description: 'vn-role-basic-data vn-textfield[ng-model="$ctrl.role.description"]',
|
||||
save: 'vn-role-basic-data button[type="submit"]'
|
||||
},
|
||||
accountSubroles: {
|
||||
addSubrole: 'vn-role-subroles button vn-icon[icon="add"]',
|
||||
role: 'vn-autocomplete[ng-model="$ctrl.addData.inheritsFrom"]',
|
||||
save: 'button[response="accept"]',
|
||||
anyResult: 'vn-role-subroles > vn-data-viewer > div > div > vn-card > vn-list > a'
|
||||
},
|
||||
accountRoleInheritance: {
|
||||
anyResult: 'vn-role-inherited > vn-data-viewer > div > div > vn-card > vn-list > a'
|
||||
},
|
||||
clientsIndex: {
|
||||
createClientButton: `vn-float-button`
|
||||
},
|
||||
|
@ -352,7 +410,6 @@ export default {
|
|||
submitNichesButton: 'vn-item-niche button[type=submit]'
|
||||
},
|
||||
itemBotanical: {
|
||||
botanical: 'vn-item-botanical vn-horizontal:nth-child(1) vn-textfield[ng-model="$ctrl.botanical.botanical"]',
|
||||
genus: 'vn-item-botanical vn-autocomplete[ng-model="$ctrl.botanical.genusFk"]',
|
||||
species: 'vn-item-botanical vn-autocomplete[ng-model="$ctrl.botanical.specieFk"]',
|
||||
submitBotanicalButton: `vn-item-botanical button[type=submit]`
|
||||
|
@ -850,6 +907,14 @@ export default {
|
|||
anySearchResult: 'vn-travel-index vn-tbody > a',
|
||||
firstSearchResult: 'vn-travel-index vn-tbody > a:nth-child(1)',
|
||||
firstTravelAddEntryButton: 'vn-travel-index a:nth-child(1) vn-icon[icon="icon-ticket"]',
|
||||
newTravelButton: 'vn-travel-index button vn-icon[icon="add"]',
|
||||
reference: 'vn-travel-create vn-textfield[ng-model="$ctrl.travel.ref"]',
|
||||
agency: 'vn-travel-create vn-autocomplete[ng-model="$ctrl.travel.agencyModeFk"]',
|
||||
shipDate: 'vn-travel-create vn-date-picker[ng-model="$ctrl.travel.shipped"]',
|
||||
landingDate: 'vn-travel-create vn-date-picker[ng-model="$ctrl.travel.landed"]',
|
||||
warehouseOut: 'vn-travel-create vn-autocomplete[ng-model="$ctrl.travel.warehouseOutFk"]',
|
||||
warehouseIn: 'vn-travel-create vn-autocomplete[ng-model="$ctrl.travel.warehouseInFk"]',
|
||||
save: 'vn-travel-create vn-submit > button'
|
||||
},
|
||||
travelExtraCommunity: {
|
||||
anySearchResult: 'vn-travel-extra-community > vn-data-viewer div > vn-tbody > vn-tr',
|
||||
|
@ -860,6 +925,7 @@ export default {
|
|||
travelBasicData: {
|
||||
reference: 'vn-travel-basic-data vn-textfield[ng-model="$ctrl.travel.ref"]',
|
||||
agency: 'vn-travel-basic-data vn-autocomplete[ng-model="$ctrl.travel.agencyModeFk"]',
|
||||
shippedDate: 'vn-travel-basic-data vn-date-picker[ng-model="$ctrl.travel.shipped"]',
|
||||
deliveryDate: 'vn-travel-basic-data vn-date-picker[ng-model="$ctrl.travel.landed"]',
|
||||
outputWarehouse: 'vn-travel-basic-data vn-autocomplete[ng-model="$ctrl.travel.warehouseOutFk"]',
|
||||
inputWarehouse: 'vn-travel-basic-data vn-autocomplete[ng-model="$ctrl.travel.warehouseInFk"]',
|
||||
|
|
|
@ -0,0 +1,43 @@
|
|||
import selectors from '../../helpers/selectors';
|
||||
import getBrowser from '../../helpers/puppeteer';
|
||||
|
||||
describe('Starred modules path', async() => {
|
||||
let browser;
|
||||
let page;
|
||||
|
||||
beforeAll(async() => {
|
||||
browser = await getBrowser();
|
||||
page = browser.page;
|
||||
await page.login('employee');
|
||||
});
|
||||
|
||||
afterAll(async() => {
|
||||
await browser.close();
|
||||
});
|
||||
|
||||
it('should make sure there are no modules pinned yet', async() => {
|
||||
const count = await page.countElement(selectors.moduleIndex.anyStarredModule);
|
||||
|
||||
expect(count).toEqual(0);
|
||||
});
|
||||
|
||||
it('should set a module as favore', async() => {
|
||||
await page.waitToClick(selectors.moduleIndex.firstModulePinIcon);
|
||||
const message = await page.waitForSnackbar();
|
||||
const count = await page.countElement(selectors.moduleIndex.anyStarredModule);
|
||||
|
||||
expect(message.text).toContain('Data saved!');
|
||||
|
||||
expect(count).toEqual(1);
|
||||
});
|
||||
|
||||
it('should remove the module from favores', async() => {
|
||||
await page.waitToClick(selectors.moduleIndex.firstModuleRemovePinIcon);
|
||||
const message = await page.waitForSnackbar();
|
||||
const count = await page.countElement(selectors.moduleIndex.anyStarredModule);
|
||||
|
||||
expect(message.text).toContain('Data saved!');
|
||||
|
||||
expect(count).toEqual(0);
|
||||
});
|
||||
});
|
|
@ -48,10 +48,10 @@ describe('Item summary path', () => {
|
|||
});
|
||||
|
||||
it(`should check the item summary preview shows fields from botanical`, async() => {
|
||||
await page.waitForTextInElement(selectors.itemSummary.botanical, 'Hedera helix');
|
||||
await page.waitForTextInElement(selectors.itemSummary.botanical, 'Abelia');
|
||||
const result = await page.waitToGetProperty(selectors.itemSummary.botanical, 'innerText');
|
||||
|
||||
expect(result).toContain('Hedera helix');
|
||||
expect(result).toContain('Abelia');
|
||||
});
|
||||
|
||||
it(`should check the item summary preview shows fields from barcode`, async() => {
|
||||
|
@ -102,7 +102,7 @@ describe('Item summary path', () => {
|
|||
await page.waitForSelector(selectors.itemSummary.basicData, {hidden: true});
|
||||
});
|
||||
|
||||
it(`should navigate to the one of the items detailed section`, async() => {
|
||||
it(`should navigate to one of the items detailed section`, async() => {
|
||||
await page.accessToSearchResult('Melee weapon combat fist 15cm');
|
||||
await page.waitForState('item.card.summary');
|
||||
});
|
||||
|
@ -135,7 +135,7 @@ describe('Item summary path', () => {
|
|||
it(`should check the item summary shows fields from botanical section`, async() => {
|
||||
const result = await page.waitToGetProperty(selectors.itemSummary.botanical, 'innerText');
|
||||
|
||||
expect(result).toContain('-');
|
||||
expect(result).toContain('procera');
|
||||
});
|
||||
|
||||
it(`should check the item summary shows fields from barcodes section`, async() => {
|
||||
|
|
|
@ -17,7 +17,6 @@ describe('Item Create botanical path', () => {
|
|||
});
|
||||
|
||||
it(`should create a new botanical for the item`, async() => {
|
||||
await page.write(selectors.itemBotanical.botanical, 'Cicuta maculata');
|
||||
await page.autocompleteSearch(selectors.itemBotanical.genus, 'Abelia');
|
||||
await page.autocompleteSearch(selectors.itemBotanical.species, 'dealbata');
|
||||
await page.waitToClick(selectors.itemBotanical.submitBotanicalButton);
|
||||
|
@ -26,15 +25,6 @@ describe('Item Create botanical path', () => {
|
|||
expect(message.text).toContain('Data saved!');
|
||||
});
|
||||
|
||||
it(`should confirm the botanical for the item was created`, async() => {
|
||||
await page.reloadSection('item.card.botanical');
|
||||
await page.waitForTextInField(selectors.itemBotanical.botanical, 'Cicuta maculata');
|
||||
const result = await page
|
||||
.waitToGetProperty(selectors.itemBotanical.botanical, 'value');
|
||||
|
||||
expect(result).toEqual('Cicuta maculata');
|
||||
});
|
||||
|
||||
it(`should confirm the Genus for the item was created`, async() => {
|
||||
await page.waitForTextInField(selectors.itemBotanical.genus, 'Abelia');
|
||||
const result = await page
|
||||
|
@ -51,8 +41,6 @@ describe('Item Create botanical path', () => {
|
|||
});
|
||||
|
||||
it(`should edit botanical for the item`, async() => {
|
||||
await page.clearInput(selectors.itemBotanical.botanical);
|
||||
await page.write(selectors.itemBotanical.botanical, 'Herp Derp');
|
||||
await page.autocompleteSearch(selectors.itemBotanical.genus, 'Abies');
|
||||
await page.autocompleteSearch(selectors.itemBotanical.species, 'decurrens');
|
||||
await page.waitToClick(selectors.itemBotanical.submitBotanicalButton);
|
||||
|
@ -61,15 +49,6 @@ describe('Item Create botanical path', () => {
|
|||
expect(message.text).toContain('Data saved!');
|
||||
});
|
||||
|
||||
it(`should confirm the botanical for the item was edited`, async() => {
|
||||
await page.reloadSection('item.card.botanical');
|
||||
await page.waitForTextInField(selectors.itemBotanical.botanical, 'Herp Derp');
|
||||
const result = await page
|
||||
.waitToGetProperty(selectors.itemBotanical.botanical, 'value');
|
||||
|
||||
expect(result).toEqual('Herp Derp');
|
||||
});
|
||||
|
||||
it(`should confirm the Genus for the item was edited`, async() => {
|
||||
await page.waitForTextInField(selectors.itemBotanical.genus, 'Abies');
|
||||
const result = await page
|
||||
|
|
|
@ -0,0 +1,76 @@
|
|||
import selectors from '../../helpers/selectors.js';
|
||||
import getBrowser from '../../helpers/puppeteer';
|
||||
|
||||
describe('Travel create path', () => {
|
||||
let browser;
|
||||
let page;
|
||||
const date = new Date();
|
||||
const day = 15;
|
||||
date.setDate(day);
|
||||
|
||||
beforeAll(async() => {
|
||||
browser = await getBrowser();
|
||||
page = browser.page;
|
||||
await page.loginAndModule('buyer', 'travel');
|
||||
});
|
||||
|
||||
afterAll(async() => {
|
||||
await browser.close();
|
||||
});
|
||||
|
||||
it('should open the create travel form by clicking on the "new" button', async() => {
|
||||
await page.waitToClick(selectors.travelIndex.newTravelButton);
|
||||
await page.waitForState('travel.create');
|
||||
});
|
||||
|
||||
it('should fill the reference, agency and ship date then save the form', async() => {
|
||||
await page.write(selectors.travelIndex.reference, 'Testing reference');
|
||||
await page.autocompleteSearch(selectors.travelIndex.agency, 'inhouse pickup');
|
||||
await page.pickDate(selectors.travelIndex.shipDate, date);
|
||||
await page.waitToClick(selectors.travelIndex.save);
|
||||
|
||||
const message = await page.waitForSnackbar();
|
||||
|
||||
expect(message.text).toContain('Data saved!');
|
||||
});
|
||||
|
||||
it('should check the user was redirected to the travel basic data upon creation', async() => {
|
||||
await page.waitForState('travel.card.basicData');
|
||||
});
|
||||
|
||||
it('should check the travel was created with the correct reference', async() => {
|
||||
const reference = await page.waitToGetProperty(selectors.travelBasicData.reference, 'value');
|
||||
|
||||
expect(reference).toContain('Testing reference');
|
||||
});
|
||||
|
||||
it('should check the travel was created with the correct agency', async() => {
|
||||
const agency = await page.waitToGetProperty(selectors.travelBasicData.agency, 'value');
|
||||
|
||||
expect(agency).toContain('inhouse pickup');
|
||||
});
|
||||
|
||||
it('should check the travel was created with the correct shiping date', async() => {
|
||||
const shipDate = await page.waitToGetProperty(selectors.travelBasicData.shippedDate, 'value');
|
||||
|
||||
expect(shipDate).toContain(day);
|
||||
});
|
||||
|
||||
it('should check the travel was created with the correct landing date', async() => {
|
||||
const landingDate = await page.waitToGetProperty(selectors.travelBasicData.deliveryDate, 'value');
|
||||
|
||||
expect(landingDate).toContain(day);
|
||||
});
|
||||
|
||||
it('should check the travel was created with the correct warehouseOut', async() => {
|
||||
const warehouseOut = await page.waitToGetProperty(selectors.travelBasicData.outputWarehouse, 'value');
|
||||
|
||||
expect(warehouseOut).toContain('Warehouse One');
|
||||
});
|
||||
|
||||
it('should check the travel was created with the correct warehouseIn', async() => {
|
||||
const warehouseIn = await page.waitToGetProperty(selectors.travelBasicData.inputWarehouse, 'value');
|
||||
|
||||
expect(warehouseIn).toContain('Warehouse Five');
|
||||
});
|
||||
});
|
|
@ -0,0 +1,82 @@
|
|||
import selectors from '../../helpers/selectors.js';
|
||||
import getBrowser from '../../helpers/puppeteer';
|
||||
|
||||
// #2833 Refactor account.basicData
|
||||
xdescribe('Account create and basic data path', () => {
|
||||
let browser;
|
||||
let page;
|
||||
|
||||
beforeAll(async() => {
|
||||
browser = await getBrowser();
|
||||
page = browser.page;
|
||||
await page.loginAndModule('developer', 'account');
|
||||
});
|
||||
|
||||
afterAll(async() => {
|
||||
await browser.close();
|
||||
});
|
||||
|
||||
it('should open the new account form by clicking the add button', async() => {
|
||||
await page.waitToClick(selectors.accountIndex.addAccount);
|
||||
await page.waitForState('account.create');
|
||||
});
|
||||
|
||||
it('should fill the form and then save it by clicking the create button', async() => {
|
||||
await page.write(selectors.accountIndex.newName, 'Remy');
|
||||
await page.write(selectors.accountIndex.newNickname, 'Gambit');
|
||||
await page.write(selectors.accountIndex.newEmail, 'RemyEtienneLeBeau@verdnatura.es');
|
||||
await page.autocompleteSearch(selectors.accountIndex.newRole, 'Trainee');
|
||||
await page.write(selectors.accountIndex.newPassword, 'cestlavie');
|
||||
await page.waitToClick(selectors.accountIndex.createAccountButton);
|
||||
const message = await page.waitForSnackbar();
|
||||
|
||||
expect(message.text).toContain('Data saved!');
|
||||
});
|
||||
|
||||
it('should redirect the user to the created account basic data section', async() => {
|
||||
await page.waitForState('account.card.basicData');
|
||||
});
|
||||
|
||||
it('should edit the basic data', async() => {
|
||||
await page.overwrite(selectors.accountBasicData.name, 'Anna');
|
||||
await page.overwrite(selectors.accountBasicData.nickname, 'Rogue');
|
||||
await page.overwrite(selectors.accountBasicData.email, 'AnnaMarieLeBeau@verdnatura.es');
|
||||
await page.autocompleteSearch(selectors.accountBasicData.language, 'english');
|
||||
await page.waitToClick(selectors.accountBasicData.save);
|
||||
const message = await page.waitForSnackbar();
|
||||
|
||||
expect(message.text).toContain('Data saved!');
|
||||
});
|
||||
|
||||
it('should reload the section and check the name was edited successfully', async() => {
|
||||
await page.reloadSection('account.card.basicData');
|
||||
const result = await page.waitToGetProperty(selectors.accountBasicData.name, 'value');
|
||||
|
||||
expect(result).toEqual('Anna');
|
||||
});
|
||||
|
||||
it('should check the nickname was edited successfully', async() => {
|
||||
const result = await page.waitToGetProperty(selectors.accountBasicData.nickname, 'value');
|
||||
|
||||
expect(result).toEqual('Rogue');
|
||||
});
|
||||
|
||||
it('should check the email was edited successfully', async() => {
|
||||
const result = await page.waitToGetProperty(selectors.accountBasicData.email, 'value');
|
||||
|
||||
expect(result).toEqual('AnnaMarieLeBeau@verdnatura.es');
|
||||
});
|
||||
|
||||
it('should check the language was edited successfully', async() => {
|
||||
const result = await page.waitToGetProperty(selectors.accountBasicData.language, 'value');
|
||||
|
||||
expect(result).toEqual('English');
|
||||
});
|
||||
|
||||
it('should navigate to the roles section to check the roles are correct', async() => {
|
||||
await page.accessToSection('account.card.roles');
|
||||
const rolesCount = await page.countElement(selectors.accountRoles.anyResult);
|
||||
|
||||
expect(rolesCount).toEqual(3);
|
||||
});
|
||||
});
|
|
@ -0,0 +1,66 @@
|
|||
import selectors from '../../helpers/selectors.js';
|
||||
import getBrowser from '../../helpers/puppeteer';
|
||||
|
||||
describe('Account Alias create and basic data path', () => {
|
||||
let browser;
|
||||
let page;
|
||||
|
||||
beforeAll(async() => {
|
||||
browser = await getBrowser();
|
||||
page = browser.page;
|
||||
await page.loginAndModule('developer', 'account');
|
||||
await page.accessToSection('account.alias');
|
||||
});
|
||||
|
||||
afterAll(async() => {
|
||||
await browser.close();
|
||||
});
|
||||
|
||||
it('should open the new account alias form by clicking the add button', async() => {
|
||||
await page.waitToClick(selectors.accountAliasIndex.addAlias);
|
||||
await page.waitForState('account.alias.create');
|
||||
});
|
||||
|
||||
it('should fill the form and then save it by clicking the create alias button', async() => {
|
||||
await page.write(selectors.accountAliasIndex.newName, 'Boring alias');
|
||||
await page.write(selectors.accountAliasIndex.newDescription, 'Boring description');
|
||||
await page.waitToClick(selectors.accountAliasIndex.createAliasButton);
|
||||
const message = await page.waitForSnackbar();
|
||||
|
||||
expect(message.text).toContain('Data saved!');
|
||||
});
|
||||
|
||||
it('should redirect the user to the created account alias basic data section', async() => {
|
||||
await page.waitForState('account.alias.card.basicData');
|
||||
});
|
||||
|
||||
it('should edit the alias basic data', async() => {
|
||||
await page.overwrite(selectors.accountAliasBasicData.name, 'Psykers');
|
||||
await page.overwrite(selectors.accountAliasBasicData.description, 'Email group for psykers');
|
||||
await page.waitToClick(selectors.accountAliasBasicData.save);
|
||||
const message = await page.waitForSnackbar();
|
||||
|
||||
expect(message.text).toContain('Data saved!');
|
||||
});
|
||||
|
||||
it('should reload the basicData section and check the name was edited successfully', async() => {
|
||||
await page.reloadSection('account.alias.card.basicData');
|
||||
const result = await page.waitToGetProperty(selectors.accountAliasBasicData.name, 'value');
|
||||
|
||||
expect(result).toEqual('Psykers');
|
||||
});
|
||||
|
||||
it('should check the alias description was edited successfully', async() => {
|
||||
const result = await page.waitToGetProperty(selectors.accountAliasBasicData.description, 'value');
|
||||
|
||||
expect(result).toContain('psykers');
|
||||
});
|
||||
|
||||
it('should search for the IT alias group then access to the users section then check the role listed is the expected one', async() => {
|
||||
await page.accessToSearchResult('IT');
|
||||
await page.accessToSection('account.alias.card.users');
|
||||
const rolesCount = await page.countElement(selectors.accountAliasUsers.anyResult);
|
||||
|
||||
expect(rolesCount).toEqual(1);
|
||||
});
|
||||
});
|
|
@ -0,0 +1,86 @@
|
|||
import selectors from '../../helpers/selectors.js';
|
||||
import getBrowser from '../../helpers/puppeteer';
|
||||
|
||||
describe('Account Role create and basic data path', () => {
|
||||
let browser;
|
||||
let page;
|
||||
|
||||
beforeAll(async() => {
|
||||
browser = await getBrowser();
|
||||
page = browser.page;
|
||||
await page.loginAndModule('developer', 'account');
|
||||
await page.accessToSection('account.role');
|
||||
});
|
||||
|
||||
afterAll(async() => {
|
||||
await browser.close();
|
||||
});
|
||||
|
||||
it('should open the new account role form by clicking the add button', async() => {
|
||||
await page.waitToClick(selectors.accountRoleIndex.addRole);
|
||||
await page.waitForState('account.role.create');
|
||||
});
|
||||
|
||||
it('should fill the form and then save it by clicking the create role button', async() => {
|
||||
await page.write(selectors.accountRoleIndex.newName, 'boringRole');
|
||||
await page.write(selectors.accountRoleIndex.newDescription, 'Boring description');
|
||||
await page.waitToClick(selectors.accountRoleIndex.createRoleButton);
|
||||
const message = await page.waitForSnackbar();
|
||||
|
||||
expect(message.text).toContain('Data saved!');
|
||||
});
|
||||
|
||||
it('should redirect the user to the created role basic data section', async() => {
|
||||
await page.waitForState('account.role.card.basicData');
|
||||
});
|
||||
|
||||
it('should edit the role basic data', async() => {
|
||||
await page.overwrite(selectors.accountRoleBasicData.name, 'psyker');
|
||||
await page.overwrite(selectors.accountRoleBasicData.description, 'A role just for psykers');
|
||||
await page.waitToClick(selectors.accountRoleBasicData.save);
|
||||
const message = await page.waitForSnackbar();
|
||||
|
||||
expect(message.text).toContain('Data saved!');
|
||||
});
|
||||
|
||||
it('should reload the role basicData section and check the name was edited successfully', async() => {
|
||||
await page.reloadSection('account.role.card.basicData');
|
||||
const result = await page.waitToGetProperty(selectors.accountRoleBasicData.name, 'value');
|
||||
|
||||
expect(result).toEqual('psyker');
|
||||
});
|
||||
|
||||
it('should check the role description was edited successfully', async() => {
|
||||
const result = await page.waitToGetProperty(selectors.accountRoleBasicData.description, 'value');
|
||||
|
||||
expect(result).toContain('psykers');
|
||||
});
|
||||
|
||||
it('should navigate to the subroles section', async() => {
|
||||
await page.accessToSection('account.role.card.subroles');
|
||||
});
|
||||
|
||||
it('should asign a subrole', async() => {
|
||||
await page.waitToClick(selectors.accountSubroles.addSubrole);
|
||||
await page.autocompleteSearch(selectors.accountSubroles.role, 'teamManager');
|
||||
await page.waitToClick(selectors.accountSubroles.save);
|
||||
const message = await page.waitForSnackbar();
|
||||
|
||||
expect(message.text).toContain('Role added!');
|
||||
});
|
||||
|
||||
it('should reload the subroles section and check a role was added', async() => {
|
||||
await page.reloadSection('account.role.card.subroles');
|
||||
const subrolesCount = await page.countElement(selectors.accountSubroles.anyResult);
|
||||
|
||||
expect(subrolesCount).toEqual(1);
|
||||
});
|
||||
|
||||
it('should search for the employee role group then access to the roles inheritance section then check the roles listed are the expected ones', async() => {
|
||||
await page.accessToSearchResult('employee');
|
||||
await page.accessToSection('account.role.card.inherited');
|
||||
const rolesCount = await page.countElement(selectors.accountRoleInheritance.anyResult);
|
||||
|
||||
expect(rolesCount).toEqual(6);
|
||||
});
|
||||
});
|
|
@ -29,7 +29,7 @@ export default class Contextmenu {
|
|||
if (!event.defaultPrevented)
|
||||
event.preventDefault();
|
||||
|
||||
if (!this.isFilterEnabled()) return;
|
||||
if (!this.isMenuEnabled()) return;
|
||||
|
||||
const parent = this.$.contextmenu;
|
||||
parent.style.top = event.pageY + 'px';
|
||||
|
@ -121,13 +121,31 @@ export default class Contextmenu {
|
|||
return isEnabled != 'false';
|
||||
}
|
||||
|
||||
isMenuEnabled() {
|
||||
if (!this.rowHeader) return true;
|
||||
const isEnabled = this.rowHeader.getAttribute('menu-enabled');
|
||||
|
||||
return isEnabled != 'false';
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if filter
|
||||
* by selection is allowed
|
||||
* by selection is enabled and
|
||||
* the menu can be interacted
|
||||
*
|
||||
* @return {Boolean}
|
||||
*/
|
||||
isFilterAllowed() {
|
||||
return this.isActionAllowed() && this.isFilterEnabled();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if the
|
||||
* context menu can be interacted
|
||||
*
|
||||
* @return {Boolean}
|
||||
*/
|
||||
isActionAllowed() {
|
||||
if (!this.target) return false;
|
||||
const isTableCell = this.target.closest('vn-td, .vn-td');
|
||||
|
||||
|
@ -179,9 +197,13 @@ export default class Contextmenu {
|
|||
if (!where) return;
|
||||
|
||||
const whereKeys = Object.keys(where);
|
||||
for (let key of whereKeys)
|
||||
for (let key of whereKeys) {
|
||||
removeProp(where, filterKey, key);
|
||||
|
||||
if (!Object.keys(where))
|
||||
delete userFilter.where;
|
||||
}
|
||||
|
||||
function removeProp(instance, findProp, prop) {
|
||||
if (prop == findProp)
|
||||
delete instance[prop];
|
||||
|
@ -208,6 +230,16 @@ export default class Contextmenu {
|
|||
const userParams = this.model.userParams;
|
||||
this.model.applyFilter(null, userParams);
|
||||
}
|
||||
|
||||
/**
|
||||
* Copies the current field
|
||||
* value to the clipboard
|
||||
*/
|
||||
copyValue() {
|
||||
const cell = angular.element(this.cell);
|
||||
if (navigator && navigator.clipboard)
|
||||
navigator.clipboard.writeText(cell.text());
|
||||
}
|
||||
}
|
||||
|
||||
Contextmenu.$inject = ['$element', '$scope', '$transclude'];
|
||||
|
|
|
@ -174,4 +174,9 @@ vn-table {
|
|||
.vn-check {
|
||||
margin: 0;
|
||||
}
|
||||
.empty-rows {
|
||||
color: $color-font-secondary;
|
||||
font-size: 1.375rem;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
|
@ -22,10 +22,23 @@
|
|||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
.icon-invoiceIn:before {
|
||||
content: "\e960";
|
||||
|
||||
.icon-basketadd:before {
|
||||
content: "\e901";
|
||||
}
|
||||
.icon-addperson:before {
|
||||
content: "\e955";
|
||||
}
|
||||
.icon-supplierfalse:before {
|
||||
content: "\e962";
|
||||
}
|
||||
.icon-invoice-in-create:before {
|
||||
content: "\e948";
|
||||
}
|
||||
.icon-invoiceOut:before {
|
||||
content: "\e960";
|
||||
}
|
||||
.icon-invoiceIn:before {
|
||||
content: "\e961";
|
||||
}
|
||||
.icon-supplier:before {
|
||||
|
@ -73,9 +86,6 @@
|
|||
.icon-deliveryprices:before {
|
||||
content: "\e956";
|
||||
}
|
||||
.icon-basketadd:before {
|
||||
content: "\e955";
|
||||
}
|
||||
.icon-catalog:before {
|
||||
content: "\e952";
|
||||
}
|
||||
|
@ -118,15 +128,9 @@
|
|||
.icon-actions:before {
|
||||
content: "\e900";
|
||||
}
|
||||
.icon-addperson:before {
|
||||
content: "\e901";
|
||||
}
|
||||
.icon-albaran:before {
|
||||
content: "\e902";
|
||||
}
|
||||
.icon-apps:before {
|
||||
content: "\e948";
|
||||
}
|
||||
.icon-artificial:before {
|
||||
content: "\e903";
|
||||
}
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
<missing-glyph horiz-adv-x="1024" />
|
||||
<glyph unicode=" " horiz-adv-x="512" d="" />
|
||||
<glyph unicode="" glyph-name="actions" d="M354.133 558.933v183.467c0 68.267 55.467 123.733 123.733 123.733s119.467-59.733 119.467-123.733v-183.467c59.733 38.4 98.133 106.667 98.133 183.467 0 119.467-98.133 217.6-221.867 217.6s-217.6-98.133-217.6-217.6c0-76.8 38.4-145.067 98.133-183.467zM832 332.8l-221.867 110.933c-8.533 4.267-17.067 4.267-25.6 4.267h-38.4v294.4c0 38.4-34.133 72.533-72.533 72.533s-72.533-34.133-72.533-72.533v-524.8l-166.4 34.133c-4.267 0-8.533 0-12.8 0-17.067 0-29.867-4.267-38.4-17.067l-38.4-38.4 238.933-238.933c12.8-12.8 29.867-21.333 51.2-21.333h332.8c38.4 0 64 25.6 68.267 64l38.4 256c0 4.267 0 8.533 0 8.533 4.267 29.867-17.067 55.467-42.667 68.267z" />
|
||||
<glyph unicode="" glyph-name="addperson" d="M201.6 755.2c0 115.2 89.6 204.8 201.6 204.8s201.6-89.6 201.6-204.8-89.6-204.8-201.6-204.8c-112 0-201.6 92.8-201.6 204.8zM387.2 153.6v208h214.4v108.8c-70.4 22.4-147.2 32-198.4 32-134.4 0-403.2-70.4-403.2-204.8v-153.6h387.2v9.6zM1024 297.6v-144h-214.4v-214.4h-144v214.4h-214.4v144h214.4v214.4h144v-214.4h214.4z" />
|
||||
<glyph unicode="" glyph-name="basketadd" d="M197.973 505.173c-15.787-2.987-25.6-15.787-25.6-32l15.787-261.973c0-12.8 12.8-25.6 25.6-22.187h2.987c15.787 2.987 25.6 15.787 25.6 32l-12.8 258.987c-2.56 12.373-18.773 25.173-31.573 25.173zM284.587 479.573v-261.973c0-19.2 12.8-28.587 28.587-28.587s28.587 12.8 28.587 28.587v261.973c0 15.787-12.8 28.587-28.587 28.587s-28.587-12.8-28.587-28.587zM359.68 182.187h-203.093l-44.8 348.16h384.427c61.44 47.36 137.813 75.52 220.587 75.52 39.68 0 78.080-6.4 113.92-18.347v35.84c0 15.787-12.8 28.587-32 32h-140.8l-115.2 226.987c6.4 6.4 6.4 19.2 6.4 28.587-6.4 32-34.987 54.187-64 47.787-32-6.4-54.187-32-47.787-64s34.987-54.187 64-47.787l89.6-197.973h-354.56l89.6 197.973c32-6.4 60.587 19.2 64 47.787 2.987 28.587-19.2 57.6-47.787 64-32 6.4-60.587-19.2-64-47.787 0-9.387 2.987-19.2 6.4-28.587l-115.2-233.387h-140.8c-15.787 0-28.587-12.8-28.587-28.587v-64c0-15.787 12.8-28.587 28.587-28.587h22.613l51.2-377.173c2.987-12.8 15.787-22.187 28.587-22.187h242.347c-5.973 17.067-10.667 35.413-13.653 53.76zM444.16 481.707v0.853c0 12.8-12.8 25.6-28.587 25.6s-28.587-12.8-28.587-28.587v-87.040c14.507 32.853 34.133 62.72 57.173 89.173zM716.8 550.4c-169.813 0-307.2-137.387-307.2-307.2s137.387-307.2 307.2-307.2c169.813 0 307.2 137.387 307.2 307.2s-137.387 307.2-307.2 307.2zM897.28 287.573v-89.173h-135.68v-135.68h-89.173v136.107h-135.68v89.173h135.68v135.68h89.173v-135.68h135.68v-0.427z" />
|
||||
<glyph unicode="" glyph-name="albaran" d="M819.2 960h-622.933c-55.467 0-102.4-46.933-102.4-102.4v-819.2c0-55.467 46.933-102.4 102.4-102.4h622.933c55.467 0 102.4 46.933 102.4 102.4v819.2c0 55.467-46.933 102.4-102.4 102.4zM358.4 174.933h-102.4v102.4h503.467v-102.4h-401.067zM256 379.733v102.4h503.467v-102.4h-503.467zM759.467 584.533h-503.467v102.4h503.467v-102.4z" />
|
||||
<glyph unicode="" glyph-name="artificial" d="M310.4-35.2c0 41.6 0 80 0 128-32-16-54.4-32-76.8-44.8-19.2-12.8-35.2-12.8-48 12.8-51.2 96-105.6 185.6-156.8 281.6-9.6 12.8-12.8 28.8-22.4 44.8 32 22.4 64 41.6 102.4 64-38.4 22.4-70.4 44.8-105.6 67.2 22.4 38.4 44.8 76.8 64 115.2 41.6 70.4 83.2 140.8 121.6 211.2 9.6 16 19.2 19.2 35.2 9.6 25.6-16 51.2-28.8 86.4-48 0 44.8 0 83.2 0 124.8 137.6 0 272 0 406.4 0 0-41.6 0-83.2 0-128 38.4 22.4 73.6 41.6 108.8 60.8 19.2-32 38.4-64 57.6-96 41.6-76.8 86.4-153.6 131.2-230.4 9.6-19.2 6.4-28.8-9.6-38.4-25.6-16-51.2-32-83.2-51.2 35.2-22.4 67.2-44.8 105.6-67.2-67.2-118.4-131.2-233.6-198.4-348.8-35.2 19.2-70.4 38.4-108.8 60.8 0-44.8 0-83.2 0-124.8-140.8-3.2-275.2-3.2-409.6-3.2zM796.8 745.6c-57.6-32-108.8-64-166.4-96 0 67.2 0 128 0 192-76.8 0-153.6 0-233.6 0 0-64 0-124.8 0-192-51.2 32-96 57.6-140.8 83.2-9.6 3.2-28.8 3.2-32-3.2-38.4-60.8-70.4-121.6-108.8-185.6 57.6-32 108.8-64 163.2-96-54.4-32-108.8-64-163.2-96 28.8-54.4 57.6-105.6 86.4-153.6 28.8-51.2 32-51.2 80-22.4 35.2 19.2 73.6 41.6 115.2 67.2 0-67.2 0-131.2 0-192 80 0 156.8 0 236.8 0 0 64 0 121.6 0 185.6 54.4-32 105.6-60.8 160-89.6 35.2 64 73.6 124.8 105.6 188.8 3.2 6.4-6.4 22.4-12.8 25.6-35.2 22.4-70.4 41.6-105.6 64-28.8 16-28.8 25.6 0 41.6 35.2 22.4 73.6 41.6 108.8 67.2 6.4 3.2 12.8 19.2 9.6 25.6-32 60.8-67.2 121.6-102.4 185.6zM387.2 323.2c0 86.4 0 166.4 0 252.8 83.2 0 163.2 0 246.4 0 0-83.2 0-166.4 0-252.8-83.2 0-163.2 0-246.4 0zM553.6 409.6c0 28.8 0 51.2 0 76.8-25.6 0-51.2 0-76.8 0 0-25.6 0-51.2 0-76.8 25.6 0 51.2 0 76.8 0z" />
|
||||
<glyph unicode="" glyph-name="barcode" d="M0 857.6h102.4v-819.2h-102.4v819.2zM307.2 857.6h153.6v-819.2h-153.6v819.2zM768 857.6h51.2v-819.2h-51.2v819.2zM204.8 857.6h51.2v-819.2h-51.2v819.2zM921.6 857.6h102.4v-819.2h-102.4v819.2zM563.2 857.6h102.4v-819.2h-102.4v819.2z" />
|
||||
|
@ -34,18 +34,18 @@
|
|||
<glyph unicode="" glyph-name="greuge" d="M921.6 729.6h-204.8v102.4c0 55.467-46.933 102.4-102.4 102.4h-204.8c-55.467 0-102.4-46.933-102.4-102.4v-102.4h-204.8c-55.467 0-102.4-46.933-102.4-102.4v-563.2c0-55.467 46.933-102.4 102.4-102.4h819.2c55.467 0 102.4 46.933 102.4 102.4v563.2c0 55.467-46.933 102.4-102.4 102.4zM614.4 729.6h-204.8v102.4h204.8v-102.4z" />
|
||||
<glyph unicode="" glyph-name="grid" d="M0 704h256v256h-256v-256zM384-64h256v256h-256v-256zM0-64h256v256h-256v-256zM0 320h256v256h-256v-256zM384 320h256v256h-256v-256zM768 960v-256h256v256h-256zM384 704h256v256h-256v-256zM768 320h256v256h-256v-256zM768-64h256v256h-256v-256z" />
|
||||
<glyph unicode="" glyph-name="history" d="M554.667 934.4c-260.267 0-469.333-209.067-469.333-469.333h-85.333l136.533-209.067 140.8 209.067h-85.333c0 200.533 162.133 362.667 362.667 362.667s362.667-162.133 362.667-362.667-162.133-362.667-362.667-362.667c-98.133 0-192 42.667-251.733 106.667l-72.533-72.533c85.333-85.333 200.533-136.533 332.8-136.533 260.267 0 465.067 209.067 465.067 465.067s-217.6 469.333-473.6 469.333zM503.467 674.133v-260.267l221.867-132.267 34.133 64-179.2 106.667v221.867h-76.8z" />
|
||||
<glyph unicode="" glyph-name="disabled" d="M98.133 174.933v17.067c0 76.8 81.067 128 179.2 162.133l-179.2-179.2zM247.467 42.667h678.4v149.333c0 110.933-183.467 179.2-328.533 200.533l-349.867-349.867zM686.933 763.733c-38.4 55.467-102.4 89.6-174.933 89.6-115.2 0-209.067-89.6-209.067-204.8 0-68.267 38.4-132.267 98.133-170.667l285.867 285.867zM0-4.267l59.733-59.733 964.267 964.267-59.733 59.733-964.267-964.267z" />
|
||||
<glyph unicode="" glyph-name="invoices" d="M320 576h341.333c12.8 0 21.333 8.533 21.333 21.333s-8.533 21.333-21.333 21.333h-341.333c-12.8 0-21.333-8.533-21.333-21.333s8.533-21.333 21.333-21.333zM320 469.333h341.333c12.8 0 21.333 8.533 21.333 21.333s-8.533 21.333-21.333 21.333h-341.333c-12.8 0-21.333-8.533-21.333-21.333s8.533-21.333 21.333-21.333zM320 358.4h128c12.8 0 21.333 8.533 21.333 21.333s-8.533 21.333-21.333 21.333h-128c-12.8 0-21.333-8.533-21.333-21.333s8.533-21.333 21.333-21.333zM917.333 960h-682.667c-59.733 0-106.667-46.933-106.667-106.667v-682.667c0-12.8 8.533-21.333 21.333-21.333s21.333 8.533 21.333 21.333v682.667c0 34.133 29.867 64 64 64h597.333c-12.8-17.067-21.333-38.4-21.333-64v-810.667c0-34.133-29.867-64-64-64s-64 29.867-64 64v42.667c0 12.8-8.533 21.333-21.333 21.333h-640c-12.8 0-21.333-8.533-21.333-21.333v-42.667c0-59.733 46.933-106.667 106.667-106.667h640c59.733 0 106.667 46.933 106.667 106.667v810.667c0 34.133 29.867 64 64 64s64-29.867 64-64v-42.667h-64c-12.8 0-21.333-8.533-21.333-21.333s8.533-21.333 21.333-21.333h85.333c12.8 0 21.333 8.533 21.333 21.333v64c0 59.733-46.933 106.667-106.667 106.667zM42.667 42.667v21.333h597.333v-21.333c0-25.6 8.533-46.933 21.333-64h-554.667c-34.133 0-64 29.867-64 64zM657.067 247.467c-12.8-8.533-25.6-12.8-42.667-12.8-12.8 0-25.6 4.267-38.4 12.8-8.533 4.267-12.8 12.8-21.333 21.333h64c4.267 0 8.533 4.267 12.8 4.267 0 0 4.267 4.267 4.267 12.8 0 4.267 0 8.533-4.267 12.8 0 0-4.267 4.267-12.8 4.267h-72.533c0 0 0 0 0 4.267 0 0 0 4.267 0 4.267h89.6c4.267 0 8.533 4.267 12.8 4.267 4.267 4.267 4.267 8.533 4.267 12.8s0 8.533-4.267 12.8c0 0-4.267 4.267-12.8 4.267h-76.8c4.267 8.533 12.8 12.8 17.067 21.333 12.8 8.533 21.333 12.8 34.133 12.8 8.533 0 17.067 0 21.333-4.267s12.8-4.267 17.067-8.533c4.267-4.267 12.8-4.267 17.067-4.267 0 0 4.267 4.267 4.267 4.267s4.267 4.267 4.267 4.267c0 4.267 4.267 4.267 4.267 8.533s0 8.533-4.267 12.8c-8.533 8.533-17.067 12.8-29.867 17.067-17.067-4.267-46.933-4.267-72.533-17.067-12.8-4.267-25.6-12.8-34.133-25.6-8.533-8.533-12.8-21.333-17.067-29.867h-17.067c-4.267 0-8.533 0-12.8-4.267s-4.267-8.533-4.267-12.8c0-4.267 0-8.533 4.267-12.8s8.533-4.267 12.8-4.267h8.533c0 0 0-4.267 0-4.267s0 0 0-4.267h-8.533c-4.267 0-8.533 0-12.8-4.267s-4.267-8.533-4.267-12.8c0-4.267 0-8.533 4.267-12.8s8.533-4.267 12.8-4.267h12.8c4.267-12.8 8.533-21.333 17.067-34.133s21.333-21.333 34.133-25.6c12.8-4.267 25.6-8.533 42.667-8.533 25.6 0 46.933 8.533 64 21.333 8.533 8.533 8.533 12.8 8.533 21.333 0 4.267 0 8.533-4.267 12.8-8.533 4.267-12.8 4.267-21.333 0z" />
|
||||
<glyph unicode="" glyph-name="disabled" d="M1012.48 3.413c15.36-15.36 15.36-40.107 0-55.893-7.68-7.68-17.92-11.52-27.733-11.52-10.24 0-20.053 3.84-27.733 11.52l-945.493 945.067c-15.36 15.36-15.36 40.107 0 55.893 7.68 7.68 17.92 11.52 27.733 11.52 10.24 0 20.053-3.84 27.733-11.52l945.493-945.067zM938.667 140.8v37.973c0 87.467-105.813 148.48-220.16 183.040l220.16-221.013zM608 471.893c69.547 35.84 117.333 107.52 117.333 192.427 0 119.893-96 215.893-213.333 215.893-84.053 0-156.16-49.493-190.72-121.6l286.72-286.72zM449.707 390.827c-149.333-16.213-364.373-87.040-364.373-212.053v-162.56h738.987l-374.613 374.613z" />
|
||||
<glyph unicode="" glyph-name="invoices" d="M320 576h341.333c12.8 0 21.333 8.533 21.333 21.333s-8.533 21.333-21.333 21.333h-341.333c-12.8 0-21.333-8.533-21.333-21.333s8.533-21.333 21.333-21.333zM320 469.333h341.333c12.8 0 21.333 8.533 21.333 21.333s-8.533 21.333-21.333 21.333h-341.333c-12.8 0-21.333-8.533-21.333-21.333s8.533-21.333 21.333-21.333zM320 358.4h128c12.8 0 21.333 8.533 21.333 21.333s-8.533 21.333-21.333 21.333h-128c-12.8 0-21.333-8.533-21.333-21.333s8.533-21.333 21.333-21.333zM917.333 960h-682.667c-59.733 0-106.667-46.933-106.667-106.667v-682.667c0-12.8 8.533-21.333 21.333-21.333s21.333 8.533 21.333 21.333v682.667c0 34.133 29.867 64 64 64h597.333c-12.8-17.067-21.333-38.4-21.333-64v-810.667c0-34.133-29.867-64-64-64s-64 29.867-64 64v42.667c0 12.8-8.533 21.333-21.333 21.333h-640c-12.8 0-21.333-8.533-21.333-21.333v-42.667c0-59.733 46.933-106.667 106.667-106.667h640c59.733 0 106.667 46.933 106.667 106.667v810.667c0 34.133 29.867 64 64 64s64-29.867 64-64v-42.667h-64c-12.8 0-21.333-8.533-21.333-21.333s8.533-21.333 21.333-21.333h85.333c12.8 0 21.333 8.533 21.333 21.333v64c0 59.733-46.933 106.667-106.667 106.667zM42.667 42.667v21.333h597.333v-21.333c0-25.6 8.533-46.933 21.333-64h-554.667c-34.133 0-64 29.867-64 64zM720.64 231.68c-3.413-8.533-8.96-16.213-15.36-22.613-6.827-6.4-14.080-11.947-22.613-16.64-8.533-4.267-17.493-7.68-26.88-10.24s-18.773-3.413-28.16-3.413c-12.373 0-24.32 2.133-35.413 6.4s-20.907 9.813-29.867 17.067c-8.96 7.253-16.64 15.36-23.040 25.173-6.4 9.387-11.52 19.627-14.933 30.72h-33.28l9.813 23.467h17.92c-0.427 4.267-0.853 8.96-0.853 14.080v2.133h-22.187l9.387 23.467h15.787c2.56 11.52 6.827 22.613 12.8 32.853 5.973 10.667 13.653 19.627 23.040 27.733s20.053 14.507 32 19.2c12.373 4.693 25.6 7.253 40.533 7.253 20.907 0 38.827-4.693 54.187-13.653s26.453-20.907 34.133-35.84l-33.707-23.467c-2.987 6.4-6.827 11.947-10.667 16.213-4.267 4.267-8.96 7.68-13.653 10.24s-9.813 4.267-15.36 5.547c-5.547 1.28-10.667 1.707-15.787 1.707-8.107 0-15.787-1.28-22.613-3.84s-12.8-5.973-17.92-10.24c-5.12-4.267-9.387-9.387-13.227-15.36s-6.4-11.947-8.107-18.773h81.92l-9.387-23.467h-76.373v-3.413c0-4.267 0.427-8.533 0.853-12.8h74.667l-9.387-23.467h-58.453c5.547-11.947 13.227-21.76 23.467-29.013s21.76-11.093 35.413-11.093c5.12 0 10.24 0.427 15.787 1.707s10.667 3.413 15.787 5.973c5.12 2.987 9.387 6.4 14.080 10.667 4.267 4.267 7.68 9.813 10.24 15.787l35.413-20.053z" />
|
||||
<glyph unicode="" glyph-name="languaje" d="M512 960c-281.6 0-512-230.4-512-512s230.4-512 512-512c281.6 0 512 230.4 512 512s-230.4 512-512 512zM866.133 652.8h-149.333c-17.067 64-38.4 123.733-72.533 183.467 93.867-34.133 174.933-98.133 221.867-183.467zM512 857.6c42.667-59.733 76.8-128 98.133-204.8h-196.267c21.333 72.533 55.467 140.8 98.133 204.8zM115.2 345.6c-8.533 34.133-12.8 68.267-12.8 102.4s4.267 68.267 12.8 102.4h174.933c-4.267-34.133-8.533-68.267-8.533-102.4s4.267-68.267 8.533-102.4h-174.933zM157.867 243.2h149.333c17.067-64 38.4-123.733 72.533-183.467-93.867 34.133-174.933 98.133-221.867 183.467zM307.2 652.8h-149.333c51.2 85.333 128 149.333 221.867 183.467-29.867-59.733-55.467-119.467-72.533-183.467zM512 38.4c-42.667 59.733-76.8 128-98.133 204.8h196.267c-21.333-72.533-55.467-140.8-98.133-204.8zM631.467 345.6h-238.933c-4.267 34.133-8.533 68.267-8.533 102.4s4.267 68.267 8.533 102.4h238.933c4.267-34.133 8.533-68.267 8.533-102.4s-4.267-68.267-8.533-102.4zM644.267 59.733c29.867 55.467 55.467 119.467 72.533 183.467h149.333c-46.933-85.333-128-149.333-221.867-183.467zM733.867 345.6c4.267 34.133 8.533 68.267 8.533 102.4s-4.267 68.267-8.533 102.4h174.933c8.533-34.133 12.8-68.267 12.8-102.4s-4.267-68.267-12.8-102.4h-174.933z" />
|
||||
<glyph unicode="" glyph-name="lines" d="M0 814.933h1024v-149.333h-1024v149.333zM0 524.8h1024v-149.333h-1024v149.333zM0 230.4h1024v-149.333h-1024v149.333z" />
|
||||
<glyph unicode="" glyph-name="logout" d="M405.333 243.2l81.067-81.067 281.6 285.867-285.867 285.867-76.8-81.067 145.067-149.333h-550.4v-115.2h550.4l-145.067-145.067zM908.8 960h-793.6c-64 0-115.2-51.2-115.2-115.2v-226.133h115.2v226.133h797.867v-797.867h-797.867v230.4h-115.2v-226.133c0-64 51.2-115.2 115.2-115.2h797.867c64 0 115.2 51.2 115.2 115.2v793.6c-4.267 64-55.467 115.2-119.467 115.2z" />
|
||||
<glyph unicode="" glyph-name="mana" d="M529.067 494.933c0 17.067 12.8 29.867 29.867 29.867s29.867-12.8 29.867-29.867c0-17.067-12.8-29.867-29.867-29.867s-29.867 12.8-29.867 29.867zM614.4 324.267c21.333 0 38.4 17.067 38.4 38.4s-17.067 38.4-38.4 38.4c-21.333 0-38.4-17.067-38.4-38.4 0-17.067 17.067-38.4 38.4-38.4zM473.6 614.4c12.8 0 25.6 12.8 25.6 25.6s-12.8 25.6-25.6 25.6-25.6-12.8-25.6-25.6c0-17.067 12.8-25.6 25.6-25.6zM802.133 302.933v-4.267c-4.267-157.867-132.267-285.867-290.133-285.867s-285.867 128-290.133 285.867v4.267h580.267zM584.533 238.933c0 17.067-12.8 29.867-29.867 29.867s-29.867-12.8-29.867-29.867 12.8-29.867 29.867-29.867c17.067 0 29.867 12.8 29.867 29.867zM401.067 264.533c-25.6 0-46.933-21.333-46.933-46.933s21.333-46.933 46.933-46.933c25.6 0 46.933 21.333 46.933 46.933s-21.333 46.933-46.933 46.933zM456.533 354.133c25.6 0 46.933 21.333 46.933 46.933s-21.333 46.933-46.933 46.933c-25.6 0-46.933-21.333-46.933-46.933s21.333-46.933 46.933-46.933zM878.933 302.933c0-200.533-162.133-366.933-366.933-366.933s-366.933 162.133-366.933 366.933c0 136.533 72.533 260.267 192 324.267v187.733c-21.333 4.267-38.4 21.333-38.4 42.667v59.733c0 25.6 21.333 42.667 42.667 42.667h332.8c25.6 0 42.667-21.333 42.667-42.667v-55.467c0-21.333-17.067-42.667-38.4-42.667v-192c123.733-68.267 200.533-192 200.533-324.267zM840.533 302.933c0 128-76.8 243.2-192 298.667h-4.267v256h34.133c4.267 0 4.267 4.267 4.267 4.267v55.467c0 4.267-4.267 4.267-4.267 4.267h-332.8c-4.267 0-8.533-4.267-8.533-4.267v-55.467c0-4.267 4.267-4.267 4.267-4.267h34.133v-256h-4.267c-115.2-51.2-192-170.667-192-298.667 0-179.2 145.067-328.533 328.533-328.533s332.8 145.067 332.8 328.533z" />
|
||||
<glyph unicode="" glyph-name="mandatory" d="M981.333 725.333v-618.667c0-93.867-76.8-170.667-170.667-170.667h-311.467c-46.933 0-89.6 17.067-119.467 51.2l-337.067 341.333c0 0 55.467 51.2 55.467 55.467 8.533 8.533 21.333 12.8 34.133 12.8 8.533 0 17.067-4.267 25.6-8.533 0 0 183.467-106.667 183.467-106.667v507.733c0 34.133 29.867 64 64 64s64-29.867 64-64v-298.667h42.667v405.333c0 34.133 29.867 64 64 64s64-29.867 64-64v-405.333h42.667v362.667c0 34.133 29.867 64 64 64s64-29.867 64-64v-362.667h42.667v234.667c0 34.133 29.867 64 64 64s64-29.867 64-64z" />
|
||||
<glyph unicode="" glyph-name="niche" d="M512 960c-196.267 0-358.4-162.133-358.4-358.4 0-268.8 358.4-665.6 358.4-665.6s358.4 396.8 358.4 665.6c0 196.267-162.133 358.4-358.4 358.4zM512 473.6c-72.533 0-128 55.467-128 128s55.467 128 128 128 128-55.467 128-128-55.467-128-128-128z" />
|
||||
<glyph unicode="" glyph-name="no036" d="M89.6 145.067v627.2c0 46.933 29.867 85.333 72.533 98.133v-46.933c-17.067-12.8-29.867-29.867-29.867-51.2v-584.533l-42.667-42.667zM409.6 465.067h-46.933v85.333h132.267l123.733 123.733h-46.933v226.133l136.533-136.533 51.2 51.2-149.333 145.067h-332.8c-42.667 0-81.067-38.4-81.067-81.067v-627.2l213.333 213.333zM686.933 51.2h-452.267l-42.667-42.667c0 0 0 0 0 0h494.933c51.2 0 93.867 38.4 102.4 85.333h-42.667c-8.533-25.6-34.133-42.667-59.733-42.667zM691.2 507.733v-42.667h-42.667l-81.067-81.067h123.733v-81.067h-204.8l-166.4-166.4h452.267c42.667 0 81.067 38.4 81.067 81.067v452.267l-162.133-162.133zM59.733-64l-59.733 59.733 964.267 964.267 59.733-59.733-964.267-964.267z" />
|
||||
<glyph unicode="" glyph-name="no036" d="M39.253 960c-9.813 0-20.053-3.84-27.733-11.52-15.36-15.787-15.36-40.533 0-55.893l945.493-945.067c7.68-7.68 17.493-11.52 27.733-11.52 9.813 0 20.053 3.84 27.733 11.52 15.36 15.787 15.36 40.533 0 55.893l-945.493 945.067c-7.68 7.68-17.493 11.52-27.733 11.52zM555.947 520.107h116.907c19.627 0 35.413-15.787 35.413-35.413s-15.787-35.413-35.413-35.413h-46.080l52.053-52.053c14.933-2.56 26.453-14.080 29.013-29.013l145.92-145.92c4.267 9.813 6.827 20.48 6.827 32v355.413c0 20.48-8.107 40.533-22.613 54.613l-188.16 187.307c-14.933 14.933-34.56 23.040-55.467 23.040h-240.213c-42.24 0-76.373-33.707-77.653-75.52l279.467-279.040zM587.947 816.64l214.613-213.333h-175.36c-21.333 0-38.827 17.493-38.827 38.827v174.507zM353.707 176.64h313.6l-150.187 150.187h-58.027c-19.627 0-35.413 15.787-35.413 35.413 0 15.787 10.24 29.013 24.32 33.707l-171.52 171.52-0.427-313.173c0-43.093 34.987-77.653 77.653-77.653zM627.2 98.987h-389.973c-21.333 0-38.827 17.493-38.827 38.827v465.493c0 21.333-17.493 38.827-38.827 38.827s-38.827-17.493-38.827-38.827v-504.32c0-42.667 34.987-77.653 78.080-77.653h428.373c21.333 0 38.827 17.493 38.827 38.827s-17.493 38.827-38.827 38.827z" />
|
||||
<glyph unicode="" glyph-name="notes" d="M614.4 960h-413.867c-59.733 0-106.667-46.933-106.667-102.4v-819.2c0-55.467 46.933-102.4 102.4-102.4h627.2c55.467 0 102.4 46.933 102.4 102.4v614.4l-311.467 307.2zM563.2 601.6v281.6l290.133-281.6h-290.133z" />
|
||||
<glyph unicode="" glyph-name="noweb" d="M0 362.667c0 132.267 98.133 238.933 226.133 256 55.467 102.4 162.133 170.667 285.867 170.667 64 0 119.467-17.067 170.667-51.2l-580.267-580.267c-64 46.933-102.4 123.733-102.4 204.8zM823.467 533.333c-4.267 29.867-17.067 55.467-25.6 81.067l-507.733-507.733h520.533c119.467 0 213.333 93.867 213.333 213.333 0 110.933-85.333 204.8-200.533 213.333zM1024 900.267l-59.733 59.733-964.267-964.267 59.733-59.733 964.267 964.267z" />
|
||||
<glyph unicode="" glyph-name="onlinepayment" d="M1024 448c0 136.533-55.467 264.533-149.333 362.667-98.133 98.133-226.133 149.333-362.667 149.333 0 0 0 0 0 0s0 0 0 0 0 0-4.267 0c0 0 0 0 0 0s0 0 0 0c-136.533 0-260.267-55.467-358.4-149.333-98.133-98.133-149.333-226.133-149.333-362.667 0-281.6 230.4-512 512-512 0 0 0 0 0 0s0 0 0 0c8.533 0 12.8 0 21.333 0-21.333 12.8-42.667 29.867-59.733 46.933-68.267 21.333-132.267 98.133-166.4 204.8 21.333 4.267 42.667 8.533 59.733 12.8 0 12.8-4.267 25.6-4.267 38.4 0 0 0 0 0 0-21.333 0-46.933-4.267-68.267-8.533-17.067 59.733-25.6 128-29.867 196.267h153.6c8.533 12.8 17.067 29.867 29.867 42.667h-183.467c0 81.067 12.8 153.6 34.133 221.867 59.733-12.8 123.733-21.333 187.733-21.333v-153.6c12.8 12.8 25.6 21.333 42.667 29.867v119.467c68.267 0 132.267 12.8 192 25.6 8.533-29.867 17.067-64 25.6-93.867 12.8 0 29.867-4.267 42.667-4.267-8.533 38.4-17.067 76.8-25.6 110.933 42.667 12.8 81.067 25.6 110.933 42.667 59.733-72.533 98.133-166.4 106.667-260.267 17.067-17.067 29.867-38.4 42.667-55.467 0 4.267 0 12.8 0 17.067 0 0 0 0 0 0s0 0 0 0 0 0 0 0zM145.067 742.4c34.133-17.067 72.533-29.867 115.2-38.4-21.333-68.267-34.133-149.333-38.4-230.4h-179.2c4.267 93.867 38.4 187.733 102.4 268.8zM132.267 170.667c-51.2 72.533-85.333 162.133-89.6 256h179.2c0-76.8 12.8-145.067 29.867-209.067-42.667-12.8-85.333-29.867-119.467-46.933zM371.2 0c-81.067 25.6-153.6 72.533-209.067 136.533 29.867 17.067 68.267 29.867 106.667 42.667 21.333-76.8 59.733-136.533 102.4-179.2zM273.067 738.133c-34.133 12.8-68.267 21.333-98.133 34.133 0 4.267 4.267 4.267 4.267 8.533 55.467 55.467 119.467 93.867 192 115.2-25.6-21.333-46.933-55.467-68.267-89.6-8.533-21.333-21.333-42.667-29.867-68.267zM486.4 708.267c-55.467 0-115.2 8.533-174.933 21.333 12.8 21.333 21.333 38.4 29.867 55.467 42.667 76.8 93.867 119.467 149.333 132.267v-209.067zM529.067 708.267v209.067c59.733-8.533 110.933-55.467 153.6-132.267 8.533-17.067 17.067-34.133 25.6-51.2-55.467-12.8-115.2-21.333-179.2-25.6zM746.667 742.4c-8.533 21.333-17.067 42.667-29.867 59.733-21.333 38.4-42.667 68.267-68.267 89.6 76.8-17.067 140.8-55.467 196.267-110.933 0 0 0 0 0 0-25.6-12.8-59.733-25.6-98.133-38.4zM721.067 541.867c-166.4 0-298.667-136.533-298.667-302.933s132.267-302.933 298.667-302.933c166.4 0 298.667 136.533 298.667 302.933 0 170.667-132.267 302.933-298.667 302.933zM853.333 110.933c-8.533-8.533-21.333-17.067-34.133-25.6s-25.6-12.8-42.667-17.067c-12.8-4.267-29.867-4.267-42.667-4.267-17.067 0-38.4 4.267-51.2 8.533-17.067 8.533-29.867 17.067-46.933 25.6-12.8 12.8-25.6 25.6-34.133 38.4s-17.067 29.867-21.333 46.933h-51.2l12.8 34.133h25.6c0 8.533 0 12.8 0 21.333v4.267h-34.133l12.8 34.133h25.6c4.267 17.067 8.533 34.133 21.333 51.2 8.533 17.067 21.333 29.867 34.133 42.667s29.867 21.333 46.933 29.867c17.067 8.533 38.4 12.8 59.733 12.8 29.867 0 59.733-8.533 81.067-21.333s38.4-29.867 51.2-55.467l-51.2-34.133c-4.267 8.533-8.533 17.067-17.067 25.6s-12.8 12.8-21.333 17.067c-8.533 4.267-17.067 8.533-21.333 8.533-8.533 0-17.067 4.267-25.6 4.267-12.8 0-25.6 0-34.133-4.267s-17.067-8.533-25.6-17.067c-8.533-8.533-12.8-12.8-21.333-21.333-4.267-8.533-8.533-17.067-12.8-29.867h123.733l-12.8-34.133h-115.2v-4.267c0-8.533 0-12.8 0-21.333h110.933l-12.8-34.133h-89.6c8.533-17.067 21.333-34.133 34.133-42.667 17.067-12.8 34.133-17.067 51.2-17.067 8.533 0 17.067 0 25.6 4.267 8.533 0 17.067 4.267 25.6 8.533s12.8 8.533 21.333 17.067c8.533 8.533 12.8 12.8 17.067 25.6l55.467-29.867c0-25.6-8.533-34.133-17.067-46.933z" />
|
||||
<glyph unicode="" glyph-name="noweb" d="M39.253 960c-9.813 0-20.053-3.84-27.733-11.52-15.36-15.787-15.36-40.533 0-55.893l945.493-945.067c7.68-7.68 17.493-11.52 27.733-11.52 9.813 0 20.053 3.84 27.733 11.52 15.36 15.787 15.36 40.533 0 55.893l-945.493 945.067c-7.68 7.68-17.493 11.52-27.733 11.52zM873.387 202.667c40.107 32.427 65.28 81.92 65.28 138.667 0 92.587-71.253 170.667-163.413 177.92-24.747 120.747-131.413 213.333-263.253 213.333-48.64 0-94.293-12.8-133.547-34.987l494.933-494.933zM256.853 587.093c-98.133-20.907-171.52-106.24-171.52-210.347 0-117.333 96-213.333 213.333-213.333h381.867l-423.68 423.68z" />
|
||||
<glyph unicode="" glyph-name="onlinepayment" d="M721.067 541.867c-166.4 0-298.667-136.533-298.667-302.933s132.267-302.933 298.667-302.933 298.667 136.533 298.667 302.933c0 170.667-132.267 302.933-298.667 302.933zM773.12 287.573v-28.16h-166.4c-0.853-6.4-1.707-13.227-1.707-20.48 0-6.827 0.427-14.080 1.707-20.48h166.4v-28.16h-159.147c9.387-26.027 25.6-46.933 48.64-62.72s49.92-23.467 80.213-23.467c39.68 0 72.533 14.080 99.413 42.24l32-31.573c-15.787-17.92-34.987-32-58.453-40.96-23.040-9.387-48.213-14.080-75.947-14.080-29.013 0-55.893 5.547-80.64 16.213s-45.653 26.027-62.72 46.080c-17.067 19.627-29.013 42.667-36.267 68.693h-56.747v28.16h52.053c-0.853 8.533-0.853 15.36-0.853 20.48s0.427 11.947 0.853 20.48h-52.053v28.16h57.173c6.827 26.027 19.2 49.067 36.267 68.693s37.973 34.987 62.72 46.080c24.747 10.667 51.627 16.213 80.64 16.213 27.733 0 53.333-4.693 75.947-14.080 23.040-9.387 42.24-23.040 58.027-40.533l-32-31.573c-26.453 27.733-59.733 41.813-99.413 41.813-30.293 0-57.173-7.68-80.213-23.467s-39.253-36.693-48.64-62.72h159.147zM874.667 810.667c-98.133 98.133-226.133 149.333-362.667 149.333 0 0 0 0-4.267 0-136.533 0-260.267-55.467-358.4-149.333-98.133-98.133-149.333-226.133-149.333-362.667 0-281.6 230.4-512 512-512 8.533 0 12.8 0 21.333 0-21.333 12.8-42.667 29.867-59.733 46.933-68.267 21.333-132.267 98.133-166.4 204.8 21.333 4.267 42.667 8.533 59.733 12.8 0 12.8-4.267 25.6-4.267 38.4-21.333 0-46.933-4.267-68.267-8.533-17.067 59.733-25.6 128-29.867 196.267h153.6c8.533 12.8 17.067 29.867 29.867 42.667h-183.467c0 81.067 12.8 153.6 34.133 221.867 59.733-12.8 123.733-21.333 187.733-21.333v-153.6c12.8 12.8 25.6 21.333 42.667 29.867v119.467c68.267 0 132.267 12.8 192 25.6 8.533-29.867 17.067-64 25.6-93.867 12.8 0 29.867-4.267 42.667-4.267-8.533 38.4-17.067 76.8-25.6 110.933 42.667 12.8 81.067 25.6 110.933 42.667 59.733-72.533 98.133-166.4 106.667-260.267 17.067-17.067 29.867-38.4 42.667-55.467 0 4.267 0 12.8 0 17.067 0 136.533-55.467 264.533-149.333 362.667zM145.067 742.4c34.133-17.067 72.533-29.867 115.2-38.4-21.333-68.267-34.133-149.333-38.4-230.4h-179.2c4.267 93.867 38.4 187.733 102.4 268.8zM132.267 170.667c-51.2 72.533-85.333 162.133-89.6 256h179.2c0-76.8 12.8-145.067 29.867-209.067-42.667-12.8-85.333-29.867-119.467-46.933zM268.8 179.2c21.333-76.8 59.733-136.533 102.4-179.2-81.067 25.6-153.6 72.533-209.067 136.533 29.867 17.067 68.267 29.867 106.667 42.667zM273.067 738.133c-34.133 12.8-68.267 21.333-98.133 34.133 0 4.267 4.267 4.267 4.267 8.533 55.467 55.467 119.467 93.867 192 115.2-25.6-21.333-46.933-55.467-68.267-89.6-8.533-21.333-21.333-42.667-29.867-68.267zM490.667 708.267h-4.267c-55.467 0-115.2 8.533-174.933 21.333 12.8 21.333 21.333 38.4 29.867 55.467 42.667 76.8 93.867 119.467 149.333 132.267v-209.067zM529.067 708.267v209.067c59.733-8.533 110.933-55.467 153.6-132.267 8.533-17.067 17.067-34.133 25.6-51.2-55.467-12.8-115.2-21.333-179.2-25.6zM746.667 742.4c-8.533 21.333-17.067 42.667-29.867 59.733-21.333 38.4-42.667 68.267-68.267 89.6 76.8-17.067 140.8-55.467 196.267-110.933-25.6-12.8-59.733-25.6-98.133-38.4z" />
|
||||
<glyph unicode="" glyph-name="package" d="M512 580.267l-448 204.8 448 174.933 448-174.933-448-204.8zM46.933 755.2l448-204.8v-614.4l-448 238.933v580.267zM977.067 174.933l-448-238.933v614.4l448 204.8v-580.267z" />
|
||||
<glyph unicode="" glyph-name="payment" d="M823.467 162.133c-12.8-59.733-64-81.067-115.2-98.133-38.4-17.067-81.067-21.333-123.733-25.6-29.867 0-59.733-4.267-89.6-4.267-68.267 0-132.267 12.8-192 34.133-42.667 17.067-81.067 42.667-102.4 85.333-29.867 4.267-55.467 8.533-81.067 17.067s-51.2 17.067-72.533 29.867c-29.867 17.067-46.933 42.667-46.933 81.067 0 149.333 0 294.4 0 439.467 0 34.133 12.8 59.733 38.4 76.8 38.4 29.867 85.333 38.4 136.533 46.933s102.4 8.533 149.333 4.267c59.733-4.267 119.467-17.067 170.667-51.2 4.267 0 4.267-4.267 8.533-4.267 59.733 46.933 128 59.733 200.533 64 38.4 4.267 76.8 0 115.2-4.267 51.2-4.267 102.4-17.067 149.333-42.667 38.4-17.067 55.467-46.933 55.467-89.6 0-140.8 0-281.6 0-418.133 0-42.667-21.333-72.533-55.467-93.867-29.867-17.067-64-29.867-98.133-34.133-12.8-8.533-29.867-8.533-46.933-12.8zM507.733 448c68.267 0 132.267 8.533 196.267 29.867 102.4 34.133 42.667 85.333 17.067 98.133-46.933 21.333-98.133 34.133-149.333 38.4-55.467 4.267-110.933 4.267-166.4-4.267-42.667-8.533-89.6-21.333-128-42.667-34.133-21.333-34.133-42.667-4.267-64 21.333-17.067 51.2-29.867 76.8-34.133 55.467-12.8 106.667-21.333 157.867-21.333zM251.733 273.067c0-29.867 0-55.467 0-81.067s8.533-42.667 29.867-51.2c25.6-12.8 46.933-21.333 72.533-29.867 64-21.333 128-21.333 192-21.333 51.2 0 98.133 8.533 145.067 25.6 25.6 8.533 51.2 17.067 68.267 38.4 4.267 4.267 12.8 12.8 12.8 21.333 0 29.867 0 59.733 0 93.867-132.267-72.533-388.267-72.533-520.533 4.267zM251.733 448c0-29.867 0-55.467 0-85.333 0-12.8 4.267-25.6 12.8-34.133 17.067-12.8 38.4-25.6 55.467-29.867 55.467-21.333 115.2-29.867 174.933-29.867 46.933 0 93.867 4.267 136.533 12.8 38.4 4.267 76.8 17.067 106.667 42.667 12.8 8.533 25.6 21.333 25.6 34.133 0 29.867 0 59.733 0 89.6-166.4-72.533-337.067-72.533-512 0zM968.533 733.867c-4.267 21.333-17.067 29.867-25.6 34.133-38.4 21.333-81.067 29.867-128 34.133-68.267 8.533-136.533 4.267-204.8-17.067-29.867-8.533-55.467-21.333-72.533-46.933 12.8-25.6 34.133-34.133 55.467-42.667 42.667-17.067 85.333-25.6 132.267-25.6 38.4 0 76.8 0 115.2 8.533 34.133 4.267 68.267 12.8 98.133 34.133 12.8 4.267 21.333 12.8 29.867 21.333zM273.067 665.6c12.8 0 29.867 0 42.667 0 46.933 4.267 89.6 12.8 132.267 34.133 8.533 4.267 21.333 12.8 29.867 21.333 12.8 8.533 8.533 21.333 0 34.133-8.533 4.267-17.067 12.8-25.6 17.067-64 29.867-128 34.133-196.267 34.133-29.867 0-59.733-4.267-85.333-12.8-38.4-8.533-72.533-17.067-102.4-42.667-12.8-12.8-17.067-21.333 0-34.133 12.8-8.533 25.6-17.067 42.667-21.333 46.933-25.6 102.4-34.133 162.133-29.867zM772.267 614.4c34.133-21.333 51.2-51.2 55.467-89.6 42.667 8.533 85.333 17.067 119.467 38.4 8.533 4.267 17.067 17.067 17.067 25.6 0 21.333 4.267 46.933 0 68.267-59.733-25.6-123.733-38.4-192-42.667zM55.467 652.8c0-21.333 0-42.667 0-59.733s8.533-29.867 21.333-38.4c29.867-21.333 68.267-29.867 102.4-34.133 4.267 0 8.533 0 17.067 0 0 38.4 17.067 64 42.667 89.6-64 0-123.733 12.8-183.467 42.667zM823.467 221.867c42.667 0 98.133 17.067 128 38.4 4.267 4.267 12.8 12.8 12.8 17.067 0 25.6 4.267 46.933 0 72.533-46.933-12.8-93.867-25.6-140.8-38.4 0-29.867 0-55.467 0-89.6zM968.533 503.467c-51.2-12.8-93.867-25.6-145.067-38.4 0-12.8 0-29.867 0-42.667 0-17.067-4.267-29.867 4.267-46.933 17.067 4.267 34.133 4.267 51.2 8.533 25.6 8.533 46.933 21.333 72.533 29.867 8.533 4.267 17.067 12.8 17.067 29.867-4.267 17.067 0 38.4 0 59.733zM196.267 209.067c0 34.133 0 68.267 0 98.133-46.933 8.533-93.867 17.067-136.533 38.4 0-17.067 0-34.133 0-51.2-4.267-29.867 8.533-46.933 34.133-59.733 8.533-4.267 17.067-8.533 29.867-12.8 21.333 0 42.667-4.267 72.533-12.8zM55.467 494.933c0-21.333 0-38.4 0-59.733 0-12.8 4.267-21.333 17.067-29.867 8.533-4.267 21.333-12.8 29.867-17.067 29.867-12.8 59.733-21.333 93.867-21.333 0 34.133 0 64 0 93.867-46.933 8.533-93.867 21.333-140.8 34.133z" />
|
||||
<glyph unicode="" glyph-name="person" d="M512 960c-140.8 0-256-115.2-256-259.2s115.2-259.2 256-259.2 256 115.2 256 259.2c0 144-115.2 259.2-256 259.2zM512 377.6c-169.6 0-512-86.4-512-259.2v-195.2h1024v195.2c0 172.8-342.4 259.2-512 259.2z" />
|
||||
|
@ -55,7 +55,7 @@
|
|||
<glyph unicode="" glyph-name="recovery" d="M746.667 477.867c68.267 0 140.8-21.333 196.267-72.533 110.933-102.4 115.2-277.333 8.533-384s-277.333-115.2-384-8.533c-93.867 85.333-110.933 221.867-51.2 328.533l51.2-46.933c-34.133-76.8-17.067-170.667 46.933-230.4 81.067-76.8 209.067-72.533 290.133 8.533 76.8 81.067 72.533 209.067-8.533 290.133-42.667 38.4-93.867 55.467-145.067 55.467l4.267-153.6-170.667 162.133 162.133 170.667v-119.467zM337.067 209.067c0 0 0 0 0 0-17.067 8.533-38.4 17.067-55.467 25.6-21.333 8.533-29.867 25.6-29.867 51.2s0 51.2 0 81.067c29.867-17.067 64-29.867 102.4-38.4 4.267 17.067 12.8 34.133 21.333 51.2-17.067 4.267-34.133 8.533-51.2 17.067-21.333 8.533-38.4 21.333-55.467 29.867-12.8 8.533-17.067 17.067-12.8 34.133 0 29.867 0 55.467 0 85.333 68.267-29.867 132.267-46.933 200.533-51.2 17.067 21.333 38.4 38.4 64 55.467 0 0-4.267 0-4.267 0-51.2 0-106.667 4.267-157.867 21.333-34.133 0-59.733 12.8-81.067 29.867-29.867 21.333-29.867 42.667 4.267 64 38.4 25.6 81.067 34.133 128 42.667 55.467 8.533 110.933 8.533 166.4 4.267 51.2-4.267 102.4-17.067 149.333-38.4 12.8-4.267 42.667-29.867 38.4-55.467 55.467 0 106.667-12.8 153.6-34.133 17.067 4.267 29.867 8.533 46.933 12.8 0-12.8 0-25.6 0-38.4 21.333-12.8 38.4-25.6 55.467-42.667 0 98.133 0 200.533 0 298.667 0 42.667-17.067 72.533-51.2 93.867-46.933 29.867-98.133 38.4-149.333 42.667-34.133 8.533-72.533 8.533-110.933 8.533-72.533-4.267-140.8-21.333-200.533-64-4.267 0-8.533 4.267-8.533 4.267-51.2 34.133-110.933 46.933-170.667 51.2-51.2 0-102.4 0-153.6-8.533-46.933-8.533-93.867-17.067-136.533-46.933-25.6-21.333-38.4-42.667-38.4-76.8 0-145.067 0-294.4 0-439.467 0-38.4 17.067-64 46.933-81.067 21.333-12.8 46.933-25.6 72.533-29.867 25.6-8.533 51.2-12.8 81.067-17.067 17.067-46.933 55.467-68.267 102.4-85.333 12.8-4.267 29.867-8.533 42.667-12.8-4.267 17.067-8.533 34.133-8.533 55.467zM964.267 686.933c0-8.533-8.533-21.333-17.067-25.6-34.133-21.333-76.8-34.133-119.467-38.4-4.267 38.4-17.067 68.267-55.467 89.6 68.267 0 128 12.8 192 42.667 4.267-25.6 4.267-46.933 0-68.267zM610.133 883.2c68.267 17.067 136.533 25.6 204.8 17.067 42.667-4.267 85.333-12.8 128-34.133 12.8-8.533 21.333-12.8 25.6-34.133-8.533-8.533-17.067-17.067-25.6-21.333-29.867-17.067-64-29.867-98.133-34.133-38.4-4.267-76.8-8.533-115.2-8.533-46.933 0-89.6 8.533-132.267 25.6-21.333 8.533-42.667 17.067-55.467 42.667 12.8 29.867 38.4 42.667 68.267 46.933zM68.267 844.8c25.6 25.6 64 34.133 98.133 38.4 29.867 4.267 59.733 12.8 85.333 12.8 68.267 0 132.267-4.267 196.267-34.133 8.533-4.267 17.067-8.533 25.6-17.067 12.8-8.533 12.8-21.333 0-34.133-8.533-8.533-17.067-12.8-29.867-21.333-42.667-21.333-85.333-29.867-132.267-34.133-17.067 0-29.867 0-42.667 0-55.467 4.267-110.933 12.8-162.133 29.867-12.8 4.267-29.867 12.8-42.667 21.333-12.8 17.067-8.533 25.6 4.267 38.4zM196.267 307.2c-25.6 8.533-51.2 12.8-72.533 21.333-8.533 4.267-21.333 8.533-29.867 12.8-25.6 12.8-38.4 29.867-34.133 59.733 0 17.067 0 29.867 0 51.2 46.933-25.6 89.6-34.133 136.533-38.4 0-42.667 0-72.533 0-106.667zM55.467 529.067c0 21.333 0 42.667 0 59.733 46.933-12.8 93.867-21.333 140.8-34.133 0-29.867 0-59.733 0-93.867-34.133 4.267-64 12.8-93.867 21.333-8.533 4.267-21.333 12.8-29.867 17.067-12.8 8.533-17.067 17.067-17.067 29.867zM196.267 618.667c-4.267 0-12.8-4.267-17.067 0-34.133 0-68.267 12.8-102.4 29.867-12.8 8.533-21.333 21.333-21.333 38.4s0 38.4 0 59.733c59.733-25.6 115.2-38.4 179.2-42.667-21.333-25.6-42.667-51.2-38.4-85.333z" />
|
||||
<glyph unicode="" glyph-name="regentry" d="M554.667 913.067c-260.267 0-469.333-209.067-469.333-469.333h-85.333l136.533-209.067 140.8 209.067h-85.333c0 200.533 162.133 362.667 362.667 362.667s362.667-162.133 362.667-362.667-162.133-362.667-362.667-362.667c-98.133 0-192 42.667-251.733 106.667l-72.533-72.533c85.333-85.333 200.533-136.533 332.8-136.533 251.733 4.267 460.8 213.333 460.8 473.6s-213.333 460.8-469.333 460.8zM332.8 234.667h430.933v179.2h-110.933v-68.267l-106.667 102.4 102.4 102.4v-68.267h110.933v179.2h-426.667v-426.667z" />
|
||||
<glyph unicode="" glyph-name="reserve" d="M841.6 864c48 0 86.4-38.4 86.4-86.4v-662.4c0-48-38.4-86.4-86.4-86.4h-659.2c-48 3.2-86.4 41.6-86.4 89.6v659.2c0 48 38.4 86.4 86.4 86.4h659.2zM841.6 960h-659.2c-99.2 0-182.4-83.2-182.4-182.4v-662.4c0-96 83.2-179.2 182.4-179.2h662.4c99.2 0 182.4 83.2 182.4 182.4v659.2c-3.2 99.2-86.4 182.4-185.6 182.4v0zM611.2 192l-99.2 144h-108.8v-144h-118.4v512h220.8c44.8 0 83.2-6.4 118.4-22.4 32-16 57.6-35.2 76.8-64s25.6-60.8 25.6-99.2c0-38.4-9.6-70.4-28.8-99.2s-44.8-48-76.8-64l115.2-163.2h-124.8zM582.4 585.6c-19.2 16-44.8 22.4-80 22.4h-96v-179.2h96c35.2 0 64 6.4 80 22.4 19.2 16 28.8 38.4 28.8 67.2-3.2 28.8-9.6 51.2-28.8 67.2z" />
|
||||
<glyph unicode="" glyph-name="risk" d="M640 320v85.333h-51.2l-85.333-85.333h136.533zM362.667 422.4c0 8.533 0 17.067 0 25.6 0 12.8 0 29.867 4.267 42.667h68.267l85.333 85.333h-128c46.933 89.6 140.8 149.333 247.467 149.333 8.533 0 17.067 0 25.6-4.267l89.6 89.6c-34.133 12.8-76.8 21.333-115.2 21.333-166.4 0-307.2-106.667-362.667-256h-149.333v-85.333h132.267c-4.267-12.8-4.267-29.867-4.267-42.667s0-29.867 4.267-42.667h-132.267v-85.333h136.533l98.133 102.4zM640 170.667c-76.8 0-149.333 34.133-200.533 85.333l-76.8-76.8c72.533-72.533 170.667-115.2 277.333-115.2 98.133 0 187.733 38.4 256 98.133l-76.8 76.8c-46.933-42.667-110.933-68.267-179.2-68.267zM1024 900.267l-59.733 59.733-964.267-964.267 59.733-59.733 964.267 964.267z" />
|
||||
<glyph unicode="" glyph-name="risk" d="M700.587 143.36c-20.48-3.84-42.24-5.973-64.427-5.973-69.973 0-131.84 17.92-184.747 54.187s-90.453 84.48-112.213 144.213h168.533l-64.853 64.853h-119.467c-2.133 15.36-3.413 31.147-3.413 47.36 0 17.067 1.28 32.853 3.413 47.36h25.173l-114.773 114.773c-6.4-16.213-12.373-32.853-17.067-49.92h-131.413v-64.853h119.893c-1.707-20.053-2.133-35.84-2.133-47.36s0.853-27.307 2.133-47.36h-119.893v-64.853h131.84c16.213-60.16 43.947-112.64 83.2-158.293 39.253-45.227 87.467-80.64 144.213-105.813s119.040-37.547 186.027-37.547c55.467 0 106.667 8.107 154.453 24.747l-84.48 84.48zM580.693 495.36h124.587v64.853h-189.44zM407.467 668.16c13.227 13.227 27.733 25.173 43.947 35.84 52.907 36.267 114.773 54.187 184.747 54.187 91.733 0 167.68-32 228.693-96l73.813 72.533c-36.267 40.96-80.64 72.107-133.547 93.44s-110.933 32.427-174.933 32.427c-66.987 0-128.853-12.373-186.027-37.547-43.52-18.347-82.347-43.947-115.627-75.52l78.933-79.36zM39.253 960c10.24 0 20.053-3.84 27.733-11.52l945.493-945.067c15.36-15.36 15.36-40.107 0-55.893-7.68-7.68-17.92-11.52-27.733-11.52-10.24 0-20.053 3.84-27.733 11.52l-945.493 945.067c-15.36 15.36-15.36 40.107 0 55.893 7.68 7.68 17.92 11.52 27.733 11.52z" />
|
||||
<glyph unicode="" glyph-name="settings" d="M891.733 396.8c0 17.067 4.267 34.133 4.267 51.2s0 34.133-4.267 51.2l106.667 85.333c8.533 8.533 12.8 21.333 4.267 34.133l-102.4 179.2c-4.267 12.8-21.333 17.067-29.867 12.8l-128-51.2c-25.6 21.333-55.467 38.4-85.333 51.2l-17.067 128c0 12.8-12.8 21.333-25.6 21.333h-204.8c-12.8 0-25.6-8.533-25.6-21.333l-17.067-136.533c-34.133-12.8-59.733-29.867-89.6-51.2l-128 51.2c-8.533 4.267-21.333 0-29.867-8.533l-102.4-179.2c-4.267-8.533-4.267-25.6 8.533-29.867l106.667-85.333c-4.267-17.067-4.267-34.133-4.267-51.2s0-34.133 4.267-51.2l-106.667-85.333c-8.533-8.533-12.8-21.333-4.267-34.133l102.4-179.2c4.267-12.8 21.333-17.067 29.867-12.8l128 51.2c25.6-21.333 55.467-38.4 85.333-51.2l17.067-128c0-12.8 12.8-21.333 25.6-21.333h204.8c12.8 0 25.6 8.533 25.6 21.333l21.333 136.533c29.867 12.8 59.733 29.867 85.333 51.2l128-51.2c12.8-4.267 25.6 0 29.867 12.8l102.4 179.2c4.267 12.8 4.267 25.6-4.267 34.133l-110.933 76.8zM512 268.8c-98.133 0-179.2 81.067-179.2 179.2s81.067 179.2 179.2 179.2 179.2-81.067 179.2-179.2-81.067-179.2-179.2-179.2z" />
|
||||
<glyph unicode="" glyph-name="sms" d="M896 729.6h-443.733c-29.867 0-55.467-25.6-55.467-55.467v-332.8c0-29.867 25.6-55.467 55.467-55.467h443.733c29.867 0 55.467 25.6 55.467 55.467v332.8c0 29.867-25.6 55.467-55.467 55.467zM896 618.667l-221.867-140.8-221.867 140.8v55.467l221.867-140.8 221.867 140.8v-55.467zM640 221.867v-55.467h-486.4v652.8h486.4v-25.6h85.333v25.6c0 76.8-64 140.8-140.8 140.8h-371.2c-81.067 0-140.8-64-140.8-140.8v-746.667c0-72.533 59.733-136.533 140.8-136.533h371.2c76.8 0 140.8 64 140.8 140.8v145.067h-85.333zM490.667 29.867h-187.733v46.933h187.733v-46.933z" />
|
||||
<glyph unicode="" glyph-name="solclaim" d="M1024 917.333v-938.667h-938.667v68.267h234.667v51.2h38.4c8.533-4.267 17.067-4.267 29.867-4.267h298.667c42.667 0 76.8 34.133 76.8 76.8 0 0 0 0 0 0 29.867 12.8 46.933 38.4 46.933 72.533 0 0 0 0 0 0 29.867 12.8 46.933 38.4 46.933 72.533s-21.333 59.733-46.933 72.533c0 0 0 0 0 0 0 42.667-34.133 76.8-76.8 76.8h-106.667c21.333 21.333 29.867 55.467 17.067 89.6-12.8 25.6-38.4 42.667-68.267 42.667-12.8 0-21.333-4.267-34.133-8.533l-217.6-98.133v29.867h-238.933v396.8h362.667v-209.067h209.067v209.067h366.933zM0 89.6h281.6v51.2h89.6c4.267-4.267 12.8-4.267 17.067-4.267h298.667c21.333 0 34.133 12.8 34.133 34.133s-12.8 34.133-34.133 34.133h-136.533v12.8h183.467c21.333 0 34.133 12.8 34.133 29.867 0 21.333-12.8 29.867-34.133 29.867h-179.2v12.8h234.667c21.333 0 34.133 8.533 34.133 29.867s-12.8 29.867-34.133 29.867h-230.4v12.8h183.467c21.333 0 29.867 12.8 29.867 34.133s-12.8 34.133-34.133 34.133h-230.4l93.867 64c12.8 8.533 21.333 29.867 12.8 46.933s-29.867 25.6-51.2 17.067l-251.733-119.467c-4.267 0-4.267-4.267-8.533-4.267-4.267-4.267-8.533-8.533-12.8-12.8h-8.533v55.467h-281.6v-388.267z" />
|
||||
|
@ -79,7 +79,7 @@
|
|||
<glyph unicode="" glyph-name="linesplit" d="M686.933 217.6h-119.467l-268.8 230.4 268.8 230.4h119.467v-153.6l337.067 196.267-337.067 238.933v-153.6h-153.6l-290.133-251.733h-243.2v-213.333h243.2l290.133-251.733h153.6v-153.6l337.067 238.933-337.067 196.267z" />
|
||||
<glyph unicode="" glyph-name="linedelete" d="M354.133 192l-98.133 98.133 157.867 153.6-157.867 157.867 98.133 102.4 157.867-157.867 157.867 153.6 98.133-98.133-157.867-157.867 157.867-153.6-98.133-98.133-157.867 157.867-157.867-157.867zM780.8 507.733l-64-64 59.733-55.467h247.467v119.467h-243.2zM307.2 443.733l-64 64h-243.2v-119.467h251.733l55.467 55.467z" />
|
||||
<glyph unicode="" glyph-name="exit" d="M405.333 243.2l81.067-81.067 281.6 285.867-285.867 285.867-76.8-81.067 145.067-149.333h-550.4v-115.2h550.4l-145.067-145.067zM908.8 960h-793.6c-64 0-115.2-51.2-115.2-115.2v-226.133h115.2v226.133h797.867v-797.867h-797.867v230.4h-115.2v-226.133c0-64 51.2-115.2 115.2-115.2h797.867c64 0 115.2 51.2 115.2 115.2v793.6c-4.267 64-55.467 115.2-119.467 115.2z" />
|
||||
<glyph unicode="" glyph-name="apps" d="M0 704h256v256h-256v-256zM384-64h256v256h-256v-256zM0-64h256v256h-256v-256zM0 320h256v256h-256v-256zM384 320h256v256h-256v-256zM768 960v-256h256v256h-256zM384 704h256v256h-256v-256zM768 320h256v256h-256v-256zM768-64h256v256h-256v-256z" />
|
||||
<glyph unicode="" glyph-name="invoice-in-create" d="M153.6 443.733c85.333 0 153.6 68.267 153.6 153.6s-68.267 153.6-153.6 153.6-153.6-68.267-153.6-153.6 68.267-153.6 153.6-153.6zM64 605.867h81.067v42.667c0 8.533 4.267 12.8 12.8 8.533l98.133-55.467c8.533-4.267 8.533-12.8 0-17.067l-98.133-55.467c-8.533-4.267-12.8 0-12.8 8.533v42.667h-81.067c-12.8 0-17.067 8.533-17.067 8.533 0 8.533 8.533 17.067 17.067 17.067zM153.6 405.333c5.547 0 11.52 0.427 17.067 0.853v-235.52c0-12.8-8.533-21.333-21.333-21.333s-21.333 8.533-21.333 21.333v236.373c8.533-1.28 17.067-1.707 25.6-1.707zM344.32 576c0.853 6.827 1.28 14.080 1.28 21.333s-0.427 14.507-1.28 21.333h317.013c12.8 0 21.333-8.533 21.333-21.333s-8.533-21.333-21.333-21.333h-317.013zM917.333 810.667c-12.8 0-21.333-8.533-21.333-21.333s8.533-21.333 21.333-21.333h85.333c12.8 0 21.333 8.533 21.333 21.333v64c0 59.733-46.933 106.667-106.667 106.667h-682.667c-59.733 0-106.667-46.933-106.667-106.667v-65.707c8.533 1.28 17.067 1.707 25.6 1.707 5.547 0 11.52-0.427 17.067-0.853v64.853c0 34.133 29.867 64 64 64h597.333c-12.8-17.067-21.333-38.4-21.333-64v-317.44c-29.44 9.387-61.013 14.507-93.867 14.507-53.76 0-104.533-14.080-148.907-38.4h-241.92c-5.973-12.373-13.653-24.32-22.613-35.413 3.84-4.693 9.387-7.253 16.64-7.253h189.013c-21.76-20.053-40.533-43.093-55.893-68.693-1.707 0.427-3.413 0.427-5.12 0.427h-128c-12.8 0-21.333-8.533-21.333-21.333s8.533-21.333 21.333-21.333h112.213c-14.507-35.413-22.613-74.24-22.613-115.2 0-49.067 11.52-95.573 32-136.533h-420.267c-12.8 0-21.333-8.533-21.333-21.333v-42.667c0-59.733 46.933-106.667 106.667-106.667h640c15.36 0 29.867 2.987 43.093 8.96 134.4 32.853 234.24 154.027 234.24 298.24 0 120.747-69.547 224.853-170.667 275.2v334.933c0 34.133 29.867 64 64 64s64-29.867 64-64v-42.667h-64zM128-21.333h-21.333c-34.133 0-64 29.867-64 64v21.333h424.533c24.747-34.56 56.747-63.573 93.44-85.333h-432.64zM897.28 287.573v-89.173h-135.68v-135.68h-89.173v136.107h-135.68v89.173h135.68v135.68h89.173v-135.68h135.68z" />
|
||||
<glyph unicode="" glyph-name="info" d="M512 960c-281.6 0-512-230.4-512-512s230.4-512 512-512 512 230.4 512 512-230.4 512-512 512zM563.2 192h-102.4v307.2h102.4v-307.2zM563.2 601.6h-102.4v102.4h102.4v-102.4z" />
|
||||
<glyph unicode="" glyph-name="delivery" d="M789.333 264.533c-55.467 0-102.4-46.933-102.4-102.4s46.933-102.4 102.4-102.4 102.4 46.933 102.4 102.4c0 59.733-46.933 102.4-102.4 102.4zM789.333 110.933c-29.867 0-51.2 21.333-51.2 51.2s21.333 51.2 51.2 51.2 51.2-21.333 51.2-51.2c0-25.6-25.6-51.2-51.2-51.2zM251.733 264.533c-55.467 0-102.4-46.933-102.4-102.4s46.933-102.4 102.4-102.4c55.467 0 102.4 46.933 102.4 102.4 0 59.733-46.933 102.4-102.4 102.4zM251.733 110.933c-29.867 0-51.2 21.333-51.2 51.2s21.333 51.2 51.2 51.2c29.867 0 51.2-21.333 51.2-51.2 0-25.6-25.6-51.2-51.2-51.2zM1006.933 537.6l-196.267 192c-12.8 12.8-29.867 17.067-46.933 17.067h-98.133v38.4c0 25.6-21.333 51.2-51.2 51.2h-563.2c-29.867 0-51.2-21.333-51.2-51.2v-554.667c0-29.867 25.6-51.2 51.2-51.2h68.267c8.533 64 64 115.2 132.267 115.2 64 0 123.733-51.2 132.267-115.2h268.8c8.533 64 64 115.2 132.267 115.2s128-51.2 136.533-115.2h51.2c29.867 0 51.2 25.6 51.2 51.2v260.267c0 17.067-8.533 34.133-17.067 46.933zM725.333 682.667c0 4.267 4.267 8.533 8.533 8.533h34.133c0 0 4.267 0 4.267-4.267l153.6-145.067c4.267 0 0-12.8-4.267-12.8h-187.733c-8.533 0-8.533 4.267-8.533 8.533v145.067zM311.467 597.333c0 46.933 29.867 85.333 59.733 93.867 4.267 0 4.267 0 8.533 0l98.133 12.8v-51.2c0-46.933-29.867-85.333-59.733-93.867-4.267 0-4.267 0-8.533 0l-98.133-17.067v55.467zM311.467 516.267l46.933 8.533c17.067 4.267 29.867-17.067 29.867-38.4l4.267-29.867-51.2-4.267c-17.067-4.267-29.867 12.8-29.867 38.4v25.6zM149.333 597.333v51.2l85.333 12.8c34.133 4.267 55.467-25.6 55.467-72.533v-51.2l-85.333-12.8c-34.133 0-59.733 29.867-55.467 72.533zM285.867 512v-38.4c0-34.133-21.333-64-42.667-68.267h-4.267l-72.533-8.533v38.4c0 34.133 21.333 64 42.667 68.267h4.267l72.533 8.533z" />
|
||||
<glyph unicode="" glyph-name="linesprepaired" d="M870.4 857.6h-213.333c-21.333 59.733-76.8 102.4-145.067 102.4s-123.733-42.667-145.067-102.4h-213.333c-55.467 0-102.4-46.933-102.4-102.4v-716.8c0-55.467 46.933-102.4 102.4-102.4h716.8c55.467 0 102.4 46.933 102.4 102.4v716.8c0 55.467-46.933 102.4-102.4 102.4zM512 857.6c29.867 0 51.2-21.333 51.2-51.2s-21.333-51.2-51.2-51.2-51.2 21.333-51.2 51.2 21.333 51.2 51.2 51.2zM614.4 140.8h-358.4v102.4h358.4v-102.4zM768 345.6h-512v102.4h512v-102.4zM768 550.4h-512v102.4h512v-102.4z" />
|
||||
|
@ -90,10 +90,10 @@
|
|||
<glyph unicode="" glyph-name="pbx" d="M512 960c-230.4 0-418.133-187.733-418.133-418.133v-324.267c0-76.8 64-140.8 140.8-140.8h140.8v371.2h-187.733v93.867c0 179.2 145.067 324.267 324.267 324.267s324.267-145.067 324.267-324.267v-93.867h-187.733v-371.2h187.733v-46.933h-324.267v-93.867h277.333c76.8 0 140.8 64 140.8 140.8v465.067c0 230.4-187.733 418.133-418.133 418.133z" />
|
||||
<glyph unicode="" glyph-name="buscaman" d="M774.4 67.2c0-19.2-16-38.4-38.4-38.4s-38.4 16-38.4 38.4 16 38.4 38.4 38.4 38.4-19.2 38.4-38.4zM262.4 102.4c-19.2 0-38.4-16-38.4-38.4s16-38.4 38.4-38.4c19.2 0 38.4 16 38.4 38.4s-16 38.4-38.4 38.4zM809.6 176c0 0 0 0 0 0 35.2-22.4 57.6-64 57.6-108.8 0-70.4-57.6-131.2-131.2-131.2-70.4 0-131.2 57.6-131.2 131.2 0 0 0-3.2 0-3.2-64-3.2-137.6-9.6-214.4-12.8 0 0 0 0 0 0-6.4-64-64-115.2-128-115.2-70.4 0-131.2 57.6-131.2 131.2 0 54.4 32 99.2 80 121.6 0 0 0 0 0 0-3.2 89.6 0 198.4 16 275.2 0 0 73.6 73.6 243.2 86.4 6.4-16 19.2-28.8 38.4-28.8s32 12.8 38.4 28.8c12.8 0 25.6-3.2 38.4-3.2v-249.6c0 0 48-60.8 220.8-67.2zM345.6 67.2c0 44.8-35.2 80-80 80s-80-35.2-80-80c0-44.8 35.2-80 80-80 44.8-3.2 80 35.2 80 80zM416 454.4c0 9.6-6.4 16-16 16s-16-6.4-16-16c3.2-48-6.4-80-28.8-99.2-28.8-25.6-73.6-12.8-73.6-12.8-9.6 3.2-16-3.2-19.2-12.8s3.2-16 12.8-19.2c0 0 12.8-3.2 32-3.2s48 3.2 70.4 22.4c25.6 25.6 38.4 67.2 38.4 124.8zM819.2 67.2c0 44.8-35.2 80-80 80s-80-35.2-80-80c0-44.8 35.2-80 80-80 41.6-3.2 80 35.2 80 80zM886.4 806.4c-118.4 102.4-243.2 156.8-377.6 153.6-214.4-3.2-368-150.4-374.4-156.8-12.8-12.8-12.8-28.8 0-41.6s28.8-12.8 41.6 0c0 0 140.8 137.6 332.8 137.6 115.2 0 230.4-44.8 336-140.8 6.4-6.4 12.8-6.4 19.2-6.4 9.6 0 16 3.2 22.4 9.6 12.8 12.8 12.8 32 0 44.8zM806.4 720c-92.8 83.2-192 121.6-297.6 121.6-169.6-3.2-291.2-118.4-294.4-121.6-12.8-12.8-12.8-28.8 0-41.6s28.8-12.8 41.6 0c0 0 108.8 102.4 252.8 105.6 0 0 3.2 0 3.2 0 86.4 0 172.8-35.2 252.8-105.6 6.4-6.4 12.8-6.4 19.2-6.4 9.6 0 16 3.2 22.4 9.6 12.8 9.6 12.8 28.8 0 38.4zM732.8 636.8c-70.4 60.8-144 92.8-220.8 89.6-128 0-217.6-89.6-220.8-92.8-12.8-12.8-12.8-28.8 0-41.6s28.8-12.8 41.6 0c0 0 76.8 73.6 179.2 73.6 64 0 124.8-25.6 182.4-76.8 6.4-6.4 12.8-6.4 19.2-6.4 9.6 0 16 3.2 22.4 9.6 9.6 12.8 9.6 32-3.2 44.8zM512 585.6c-16 0-28.8-12.8-28.8-28.8s12.8-28.8 28.8-28.8c16 0 28.8 12.8 28.8 28.8-3.2 16-16 28.8-28.8 28.8z" />
|
||||
<glyph unicode="" glyph-name="catalog" d="M60.8 604.8h64v-310.4h-64v310.4zM979.2 960h-873.6c-25.6 0-44.8-19.2-44.8-44.8v-176h64v156.8h835.2v-896h-835.2v156.8h-64v-176c0-25.6 19.2-44.8 44.8-44.8h873.6c25.6 0 44.8 19.2 44.8 44.8v934.4c0 25.6-19.2 44.8-44.8 44.8zM230.4 688c0 9.6-9.6 19.2-19.2 19.2h-192c-9.6 0-19.2-9.6-19.2-19.2v-35.2c0-9.6 9.6-19.2 19.2-19.2h195.2c9.6 0 19.2 9.6 19.2 19.2v35.2zM230.4 240c0 9.6-9.6 19.2-19.2 19.2h-192c-9.6 0-19.2-9.6-19.2-19.2v-35.2c0-9.6 9.6-19.2 19.2-19.2h195.2c9.6 0 19.2 9.6 19.2 19.2v35.2zM876.8 742.4h-275.2v-275.2h275.2v275.2zM876.8 428.8h-275.2v-275.2h275.2v275.2zM528 710.4h-211.2v-211.2h211.2v211.2zM560 742.4v-275.2h-275.2v275.2h275.2zM560 428.8h-275.2v-275.2h275.2v275.2z" />
|
||||
<glyph unicode="" glyph-name="unavailable" d="M469.333 524.8v366.933h-136.533v-499.2zM290.133 345.6v546.133h-42.667v-588.8zM776.533 832v59.733h-42.667v-102.4zM644.267 699.733v192h-89.6c0 0 0-145.067 0-277.333l89.6 85.333zM866.133 682.667v-42.667c34.133-17.067 64-42.667 89.6-68.267v200.533l-89.6-89.6zM776.533 593.067l-64-64c8.533 0 17.067 4.267 25.6 4.267 85.333 0 149.333-68.267 149.333-149.333 0-85.333-68.267-149.333-149.333-149.333s-149.333 68.267-149.333 149.333c0 8.533 0 17.067 0 25.6l-68.267-68.267c8.533-38.4 21.333-72.533 46.933-102.4l-12.8-12.8h-25.6l-166.4-170.667 51.2-51.2 166.4 170.667v25.6l8.533 12.8c38.4-34.133 89.6-51.2 145.067-51.2 123.733 0 217.6 98.133 217.6 217.6 0 106.667-76.8 192-174.933 213.333zM157.867 213.333v678.4h-89.6v-733.867h29.867zM460.8 273.067l-119.467-115.2h21.333l102.4 102.4c-4.267 4.267-4.267 8.533-4.267 12.8zM964.267 960l59.733-59.733-964.267-964.267-59.733 59.733 964.267 964.267z" />
|
||||
<glyph unicode="" glyph-name="unavailable" d="M39.253 960c-9.813 0-20.053-3.84-27.733-11.52-15.36-15.787-15.36-40.533 0-55.893l945.493-945.067c7.68-7.68 17.493-11.52 27.733-11.52 9.813 0 20.053 3.84 27.733 11.52 15.36 15.787 15.36 40.533 0 55.893l-945.493 945.067c-7.68 7.68-17.493 11.52-27.733 11.52zM469.333 606.72v267.947h-128v-139.947zM640 874.667h-85.333c0 0 0-142.080 0-273.92 24.747 21.333 53.333 35.413 85.333 46.080v227.84zM563.2 512.853l46.933-46.933c26.453 36.267 69.973 60.587 118.613 60.587 81.92 0 145.92-64 145.92-145.92 0-49.493-23.893-92.16-60.587-118.187l43.947-43.947c47.36 38.827 77.227 97.707 77.227 162.133 0 117.333-96 209.92-209.92 209.92-66.133-0.427-124.16-30.72-162.133-77.653zM938.667 565.333v309.333h-85.333v-241.92c32-17.493 60.587-38.827 85.333-67.413zM768 657.92v216.747h-42.667l3.413-213.333c14.507 0 28.587 0 39.253-3.413zM298.667 777.387v97.28h-42.667v-54.613zM524.373 320c8.107-28.587 22.187-54.613 40.96-78.080l-10.667-7.253h-24.747l-160-163.413 49.493-49.92 160 163.413v24.747l7.253 10.667c21.76-19.627 48.64-33.28 78.507-41.387l-140.8 141.227zM444.587 376.747c0 7.253 0.427 14.507 1.28 21.333l-104.533 104.533v-335.36h24.747l99.413 99.413c-14.080 35.413-20.907 71.253-20.907 110.080zM85.333 758.613v-591.36h85.333v506.027zM256 587.947v-420.693h42.667v378.027z" />
|
||||
<glyph unicode="" glyph-name="wand" d="M829.649 565.029l-18.808-50.155-50.155-18.808 50.155-18.808 18.808-50.155 18.808 50.155 50.155 18.808-50.155 18.808-18.808 50.155zM624.849 870.139l-35.527 89.861-33.437-89.861-89.861-35.527 89.861-33.437 33.437-89.861 33.437 89.861 91.951 33.437-89.861 35.527zM969.665 819.984l-20.898 54.335-20.898-54.335-52.245-20.898 52.245-20.898 20.898-52.245 20.898 52.245 54.335 20.898-54.335 20.898zM783.673 648.62l-71.053 71.053c-4.18 4.18-8.359 4.18-12.539 4.18s-8.359-2.090-12.539-4.18l-681.273-681.273c0 0 0 0 0 0v0c-6.269-6.269-6.269-18.808 0-25.078l71.053-71.053c6.269-6.269 16.718-6.269 22.988 0v0c0 0 0 0 0 0l683.363 683.363c6.269 6.269 6.269 16.718 0 22.988zM626.939 506.514l-56.424 56.424 129.567 129.567 56.424-56.424-129.567-129.567z" />
|
||||
<glyph unicode="" glyph-name="basketadd" d="M515.2 512c-16 0-28.8-12.8-28.8-28.8v-83.2c16 22.4 35.2 41.6 57.6 60.8v22.4c0 16-12.8 28.8-28.8 28.8zM416 185.6h-259.2l-44.8 348.8h566.4c32 9.6 64 16 99.2 16 16 0 32 0 48-3.2 3.2 3.2 6.4 9.6 6.4 16v64c0 16-12.8 28.8-32 32h-140.8l-115.2 227.2c6.4 6.4 6.4 19.2 6.4 28.8-6.4 32-35.2 54.4-64 48-32-6.4-54.4-32-48-64s35.2-54.4 64-48l89.6-198.4h-355.2l89.6 198.4c32-6.4 60.8 19.2 64 48s-19.2 57.6-48 64c-32 6.4-60.8-19.2-64-48 0-9.6 3.2-19.2 6.4-28.8l-115.2-233.6h-140.8c-16 0-28.8-12.8-28.8-28.8v-64c0-16 12.8-28.8 28.8-28.8h22.4l51.2-377.6c3.2-12.8 16-22.4 28.8-22.4h288c-3.2 16-3.2 35.2-3.2 54.4zM416 512c-16 0-28.8-12.8-28.8-28.8v-259.2c0-16 12.8-28.8 28.8-28.8 0 0 0 0 0 0 0 44.8 9.6 89.6 28.8 131.2v160c0 12.8-12.8 25.6-28.8 25.6zM198.4 508.8c-16-3.2-25.6-16-25.6-32l16-262.4c0-12.8 12.8-25.6 25.6-22.4h3.2c16 3.2 25.6 16 25.6 32l-12.8 259.2c-3.2 12.8-19.2 25.6-32 25.6zM284.8 483.2v-262.4c0-19.2 12.8-28.8 28.8-28.8s28.8 12.8 28.8 28.8v262.4c0 16-12.8 28.8-28.8 28.8s-28.8-12.8-28.8-28.8zM1024 243.2v-121.6h-185.6v-185.6h-121.6v185.6h-185.6v121.6h185.6v185.6h121.6v-185.6z" />
|
||||
<glyph unicode="" glyph-name="deliveryprices" d="M789.333 264.533c-55.467 0-102.4-46.933-102.4-102.4s46.933-102.4 102.4-102.4 102.4 46.933 102.4 102.4c0 59.733-46.933 102.4-102.4 102.4zM789.333 110.933c-29.867 0-51.2 21.333-51.2 51.2s21.333 51.2 51.2 51.2 51.2-21.333 51.2-51.2c0-25.6-25.6-51.2-51.2-51.2zM251.733 264.533c-55.467 0-102.4-46.933-102.4-102.4s46.933-102.4 102.4-102.4 102.4 46.933 102.4 102.4c0 59.733-46.933 102.4-102.4 102.4zM251.733 110.933c-29.867 0-51.2 21.333-51.2 51.2s21.333 51.2 51.2 51.2 51.2-21.333 51.2-51.2c0-25.6-25.6-51.2-51.2-51.2zM1006.933 537.6l-196.267 192c-12.8 12.8-29.867 17.067-46.933 17.067h-98.133v38.4c0 25.6-21.333 51.2-51.2 51.2h-563.2c-29.867 0-51.2-21.333-51.2-51.2v-554.667c0-29.867 25.6-51.2 51.2-51.2h68.267c8.533 64 64 115.2 132.267 115.2 64 0 123.733-51.2 132.267-115.2h268.8c8.533 64 64 115.2 132.267 115.2s128-51.2 136.533-115.2h51.2c29.867 0 51.2 25.6 51.2 51.2v260.267c0 17.067-8.533 34.133-17.067 46.933zM392.533 605.867v-38.4h-170.667c0-8.533 0-12.8 0-17.067s0-12.8 0-17.067h170.667v-42.667h-157.867c12.8-25.6 25.6-42.667 51.2-59.733 21.333-12.8 46.933-21.333 76.8-21.333 42.667 0 76.8 17.067 102.4 46.933l46.933-42.667c-17.067-21.333-38.4-38.4-68.267-46.933-25.6-12.8-55.467-17.067-89.6-17.067s-64 4.267-89.6 17.067c-25.6 12.8-51.2 29.867-68.267 51.2s-29.867 42.667-38.4 72.533h-64v38.4h55.467c0 4.267 0 8.533 0 17.067s0 12.8 0 17.067h-55.467v42.667h64c8.533 29.867 21.333 51.2 38.4 76.8s42.667 38.4 68.267 51.2c29.867 8.533 59.733 12.8 93.867 12.8 29.867 0 59.733-4.267 89.6-17.067 25.6-8.533 46.933-25.6 64-46.933l-46.933-42.667c-29.867 29.867-64 46.933-102.4 46.933-29.867 0-55.467-8.533-76.8-21.333-25.6-17.067-42.667-34.133-51.2-59.733h157.867zM921.6 529.067h-187.733c-8.533 0-8.533 4.267-8.533 8.533v145.067c0 4.267 4.267 8.533 8.533 8.533h34.133c0 0 4.267 0 4.267-4.267l153.6-145.067c4.267 0 0-12.8-4.267-12.8z" />
|
||||
<glyph unicode="" glyph-name="addperson" d="M716.8 550.4c-169.813 0-307.2-137.387-307.2-307.2s137.387-307.2 307.2-307.2 307.2 137.387 307.2 307.2-137.387 307.2-307.2 307.2zM897.28 287.573v-89.173h-135.68v-135.68h-89.173v136.107h-135.68v89.173h135.68v135.68h89.173v-135.68h92.16l43.52-0.427zM354.133 243.2c0 96.853 37.547 187.733 105.813 256-20.907 2.133-40.107 2.987-56.747 2.987-134.4 0-403.2-70.4-403.2-204.8v-153.6h367.787c-8.96 32-13.653 65.28-13.653 99.413zM605.013 755.2c0-113.108-90.355-204.8-201.813-204.8s-201.813 91.692-201.813 204.8c0 113.108 90.355 204.8 201.813 204.8s201.813-91.692 201.813-204.8z" />
|
||||
<glyph unicode="" glyph-name="deliveryprices" d="M251.733 264.533c-55.467 0-102.4-46.933-102.4-102.4s46.933-102.4 102.4-102.4 102.4 46.933 102.4 102.4c0 59.733-46.933 102.4-102.4 102.4zM251.733 110.933c-29.867 0-51.2 21.333-51.2 51.2s21.333 51.2 51.2 51.2 51.2-21.333 51.2-51.2c0-25.6-25.6-51.2-51.2-51.2zM789.333 264.533c-55.467 0-102.4-46.933-102.4-102.4s46.933-102.4 102.4-102.4 102.4 46.933 102.4 102.4c0 59.733-46.933 102.4-102.4 102.4zM789.333 110.933c-29.867 0-51.2 21.333-51.2 51.2s21.333 51.2 51.2 51.2 51.2-21.333 51.2-51.2c0-25.6-25.6-51.2-51.2-51.2zM1006.933 537.6l-196.267 192c-12.8 12.8-29.867 17.067-46.933 17.067h-98.133v38.4c0 25.6-21.333 51.2-51.2 51.2h-563.2c-29.867 0-51.2-21.333-51.2-51.2v-554.667c0-29.867 25.6-51.2 51.2-51.2h68.267c8.533 64 64 115.2 132.267 115.2 64 0 123.733-51.2 132.267-115.2h268.8c8.533 64 64 115.2 132.267 115.2s128-51.2 136.533-115.2h51.2c29.867 0 51.2 25.6 51.2 51.2v260.267c0 17.067-8.533 34.133-17.067 46.933zM376.32 614.827v-28.16h-166.4c-0.853-6.4-1.707-13.227-1.707-20.48 0-6.827 0.427-14.080 1.707-20.48h166.4v-28.16h-159.147c9.387-26.027 25.6-46.933 48.64-62.72s49.92-23.467 80.213-23.467c39.68 0 72.533 14.080 99.413 42.24l32-31.573c-15.787-17.92-34.987-32-58.453-40.96-23.040-9.387-48.213-14.080-75.947-14.080-29.013 0-55.893 5.547-80.64 16.213s-45.653 26.027-62.72 46.080c-17.067 19.627-29.013 42.667-36.267 68.693h-56.747v28.16h52.053c-0.853 8.533-0.853 15.36-0.853 20.48s0.427 11.947 0.853 20.48h-52.053v28.16h57.173c6.827 26.027 19.2 49.067 36.267 68.693s37.973 34.987 62.72 46.080c24.747 10.667 51.627 16.213 80.64 16.213 27.733 0 53.333-4.693 75.947-14.080 23.040-9.387 42.24-23.040 58.027-40.533l-32-31.573c-26.453 27.733-59.733 41.813-99.413 41.813-30.293 0-57.173-7.68-80.213-23.467s-39.253-36.693-48.64-62.72h159.147zM921.6 529.067h-187.733c-8.533 0-8.533 4.267-8.533 8.533v145.067c0 4.267 4.267 8.533 8.533 8.533h34.133c0 0 4.267 0 4.267-4.267l153.6-145.067c4.267 0 0-12.8-4.267-12.8z" />
|
||||
<glyph unicode="" glyph-name="fruit" d="M870.4 814.933c-204.8 196.267-529.067 192-725.333-8.533-196.267-204.8-192-529.067 8.533-725.333s524.8-192 725.333 12.8c196.267 200.533 192 524.8-8.533 721.067zM840.533 128c-174.933-179.2-465.067-183.467-644.267-8.533s-179.2 465.067-4.267 644.267 465.067 183.467 644.267 8.533c179.2-174.933 179.2-460.8 4.267-644.267zM145.067 366.933c-38.4 51.2-4.267 149.333 8.533 162.133 29.867 17.067 157.867-25.6 183.467-38.4s98.133-29.867 98.133-55.467c0-29.867-64-46.933-119.467-55.467-59.733-12.8-153.6-38.4-170.667-12.8zM256 170.667c-59.733 17.067-89.6 102.4-85.333 119.467 12.8 29.867 136.533 68.267 162.133 76.8 25.6 4.267 93.867 34.133 106.667 12.8 17.067-25.6-29.867-64-64-106.667-38.4-46.933-89.6-115.2-119.467-102.4zM405.333 622.933c-25.6 51.2-72.533 128-51.2 153.6 38.4 51.2 132.267 51.2 145.067 38.4 25.6-21.333 17.067-157.867 12.8-183.467s0-102.4-25.6-106.667c-29.867-8.533-55.467 46.933-81.067 98.133zM537.6 648.533c8.533 59.733 8.533 149.333 42.667 162.133 59.733 21.333 140.8-29.867 149.333-51.2 8.533-34.133-72.533-145.067-93.867-166.4s-59.733-85.333-85.333-76.8c-29.867 12.8-17.067 76.8-12.8 132.267zM494.933 217.6c-8.533-51.2-12.8-128-38.4-136.533-51.2-17.067-119.467 25.6-123.733 42.667-8.533 29.867 68.267 123.733 85.333 140.8s51.2 72.533 72.533 64c21.333-4.267 8.533-59.733 4.267-110.933zM320 516.267c-55.467 25.6-136.533 51.2-136.533 85.333 0 64 68.267 123.733 85.333 123.733 34.133 0 110.933-110.933 128-132.267 12.8-25.6 64-76.8 46.933-98.133-17.067-29.867-72.533 0-123.733 21.333zM887.467 482.133c38.4-51.2 8.533-149.333-17.067-162.133-29.867-17.067-145.067 38.4-170.667 46.933-25.6 12.8-98.133 29.867-98.133 55.467 0 29.867 64 38.4 123.733 51.2 55.467 8.533 140.8 34.133 162.133 8.533zM785.067 686.933c55.467-17.067 89.6-98.133 85.333-115.2-8.533-29.867-132.267-64-157.867-72.533-25.6-4.267-89.6-29.867-102.4-12.8-17.067 25.6 25.6 64 64 102.4 29.867 42.667 76.8 106.667 110.933 98.133zM725.333 328.533c51.2-17.067 102.4-46.933 102.4-76.8-4.267-51.2-64-115.2-98.133-115.2-29.867 0-89.6 106.667-102.4 132.267-12.8 21.333-51.2 76.8-34.133 98.133s76.8-17.067 132.267-38.4zM610.133 238.933c21.333-46.933 59.733-110.933 38.4-132.267-34.133-42.667-115.2-42.667-128-29.867-21.333 17.067-8.533 136.533-4.267 157.867 4.267 25.6 4.267 89.6 25.6 93.867 29.867 4.267 46.933-46.933 68.267-89.6z" />
|
||||
<glyph unicode="" glyph-name="deletedTicket" horiz-adv-x="900" d="M96.823 84.328h694.333v640.777c0 0-2.019 234.895-350.243 234.895s-344.090-234.895-344.090-234.895v-640.777zM227.684 652.223h171.244v152.494h102.496v-152.494h171.276v-102.496h-171.276v-357.519h-102.496v357.519h-171.244v102.496zM0 59.649v-123.649h900.415v123.649h-900.415z" />
|
||||
<glyph unicode="" glyph-name="entry" d="M0 328.882l392.882-392.882 265.404 265.404-100.31 100.31-102.4-100.31v303.020h303.020l-100.31-102.4 100.31-100.31 265.404 265.404-392.882 392.882z" />
|
||||
|
@ -103,8 +103,9 @@
|
|||
<glyph unicode="" glyph-name="zone" d="M243.2 448c-12.8 17.067-25.6 34.133-38.4 51.2-34.133 46.933-68.267 98.133-89.6 153.6-17.067 34.133-25.6 72.533-17.067 110.933 8.533 51.2 38.4 89.6 85.333 110.933 59.733 25.6 132.267 8.533 174.933-34.133 34.133-38.4 42.667-81.067 34.133-132.267-8.533-46.933-29.867-85.333-51.2-123.733-29.867-46.933-59.733-89.6-89.6-132.267-4.267 0-4.267 0-8.533-4.267zM247.467 823.467c-46.933 0-89.6-38.4-89.6-89.6 0-46.933 38.4-89.6 85.333-89.6s89.6 38.4 89.6 85.333c0 55.467-38.4 93.867-85.333 93.867zM490.667 379.733l-17.067 25.6 12.8 8.533-34.133 183.467c0 0 0 8.533-8.533 8.533l-42.667 4.267c0 0-68.267-110.933-157.867-217.6 4.267 4.267-93.867 110.933-132.267 187.733l-110.933-51.2c0 0-4.267 0-4.267-8.533l25.6-145.067 34.133-21.333-8.533-21.333-17.067 8.533 59.733-332.8 213.333 102.4 238.933-21.333-51.2 290.133zM149.333 285.867c-12.8 4.267-29.867 12.8-42.667 17.067 4.267 8.533 4.267 17.067 8.533 21.333 17.067 0 29.867-4.267 42.667-12.8-4.267-8.533-4.267-17.067-8.533-25.6zM256 268.8c-17.067 0-34.133 4.267-46.933 4.267 0 8.533 4.267 17.067 4.267 25.6 12.8 0 29.867-4.267 42.667-4.267 0-8.533 0-17.067 0-25.6zM315.733 277.333c-4.267 8.533-4.267 12.8-8.533 21.333 17.067 8.533 29.867 17.067 42.667 21.333 4.267-8.533 8.533-12.8 8.533-21.333-12.8-8.533-25.6-12.8-42.667-21.333zM405.333 328.533c-4.267 8.533-8.533 12.8-12.8 21.333 12.8 8.533 25.6 17.067 38.4 25.6 4.267-4.267 8.533-12.8 12.8-21.333-8.533-8.533-21.333-17.067-38.4-25.6zM972.8 460.8l-29.867 25.6 12.8 21.333 12.8-8.533-34.133 187.733c0 0 0 8.533-8.533 8.533l-226.133 17.067-209.067-93.867c0 0-8.533-4.267-4.267-12.8l29.867-170.667 21.333-12.8-17.067-17.067 55.467-307.2 213.333 102.4 234.667-21.333-51.2 281.6zM580.267 465.067c-4.267 4.267-8.533 12.8-12.8 17.067 12.8 12.8 21.333 21.333 29.867 34.133 4.267-4.267 12.8-12.8 17.067-17.067-12.8-8.533-25.6-21.333-34.133-34.133zM657.067 541.867c-4.267 4.267-8.533 12.8-12.8 21.333 12.8 8.533 25.6 17.067 38.4 25.6 8.533-8.533 12.8-17.067 12.8-21.333-12.8-8.533-25.6-17.067-38.4-25.6zM797.867 571.733c-12.8 4.267-25.6 4.267-42.667 4.267 0 8.533 0 17.067 0 25.6 17.067 0 34.133 0 51.2-4.267-4.267-8.533-4.267-17.067-8.533-25.6zM891.733 520.533c-12.8 8.533-25.6 17.067-38.4 25.6 4.267 8.533 8.533 12.8 12.8 21.333 12.8-8.533 25.6-17.067 38.4-25.6-4.267-8.533-8.533-12.8-12.8-21.333z" />
|
||||
<glyph unicode="" glyph-name="inventory" d="M273.067 226.133c4.267 0 8.533 4.267 8.533 8.533v85.333h98.133v-221.867h-217.6v221.867h98.133v-81.067c0-8.533 8.533-12.8 12.8-12.8zM512 226.133c4.267 0 8.533 4.267 8.533 8.533v85.333h98.133v-221.867h-217.6v221.867h98.133v-81.067c0-8.533 8.533-12.8 12.8-12.8zM750.933 226.133c4.267 0 8.533 4.267 8.533 8.533v85.333h98.133v-221.867h-217.6v221.867h98.133v-81.067c4.267-8.533 8.533-12.8 12.8-12.8zM644.267 780.8h98.133v-81.067c0-4.267 4.267-8.533 8.533-8.533s8.533 4.267 8.533 8.533v81.067h98.133v-221.867h-217.6v221.867h4.267zM401.067 780.8h98.133v-81.067c0-4.267 4.267-8.533 8.533-8.533s8.533 4.267 8.533 8.533v81.067h98.133v-221.867h-213.333v221.867zM162.133 780.8h98.133v-81.067c0-4.267 4.267-8.533 8.533-8.533s8.533 4.267 8.533 8.533v81.067h98.133v-221.867h-213.333v221.867zM153.6 537.6h780.8v-38.4h-844.8v38.4zM68.267-42.667h-42.667v981.333h42.667v-908.8zM89.6 38.4v38.4h844.8v-38.4zM998.4-42.667h-42.667v981.333h42.667z" />
|
||||
<glyph unicode="" glyph-name="latestBuy" d="M183.467 750.933h712.533v-38.4h-768v38.4zM89.6 64c8.533 0 12.8 0 21.333-4.267v900.267h-42.667v-900.267c8.533 4.267 12.8 4.267 21.333 4.267zM955.733 512v448h-42.667v-413.867c17.067-12.8 29.867-21.333 42.667-34.133zM145.067-8.533c0-30.633-24.833-55.467-55.467-55.467s-55.467 24.833-55.467 55.467c0 30.633 24.833 55.467 55.467 55.467s55.467-24.833 55.467-55.467zM418.133 426.667h-290.133v-38.4h273.067c4.267 17.067 8.533 29.867 17.067 38.4zM392.533 106.667h-264.533v-38.4h281.6c-8.533 12.8-12.8 25.6-17.067 38.4zM725.333 247.467c-12.8 0-21.333-8.533-21.333-21.333s8.533-21.333 21.333-21.333c12.8 0 21.333 8.533 21.333 21.333 0 8.533-12.8 21.333-21.333 21.333zM721.067 541.867c-166.4 0-298.667-136.533-298.667-302.933s132.267-302.933 298.667-302.933c166.4 0 298.667 136.533 298.667 302.933 0 170.667-132.267 302.933-298.667 302.933zM725.333 34.133c-98.133 0-174.933 72.533-187.733 162.133h-34.133l51.2 64 59.733-64h-38.4c8.533-68.267 72.533-123.733 149.333-123.733 81.067 0 149.333 64 149.333 145.067s-68.267 145.067-149.333 145.067c-68.267 0-128-46.933-145.067-110.933l-21.333 29.867-17.067-12.8c8.533 29.867 25.6 55.467 46.933 76.8l-25.6 21.333c-4.267 4.267-4.267 12.8 0 17.067l12.8 12.8c4.267 4.267 12.8 4.267 17.067 0l25.6-25.6c21.333 12.8 51.2 25.6 76.8 25.6v29.867h-8.533c-8.533 0-12.8 4.267-12.8 12.8v17.067c0 8.533 4.267 12.8 12.8 12.8h59.733c8.533 0 12.8-4.267 12.8-12.8v-17.067c0-8.533-4.267-12.8-12.8-12.8h-8.533v-21.333c29.867-4.267 55.467-12.8 81.067-29.867l34.133 29.867c4.267 4.267 12.8 4.267 17.067 0l12.8-12.8c4.267-4.267 4.267-12.8 0-17.067l-25.6-25.6c29.867-34.133 51.2-76.8 51.2-128 4.267-102.4-81.067-187.733-183.467-187.733zM772.267 226.133c0-25.6-21.333-46.933-46.933-46.933s-46.933 21.333-46.933 46.933c0 25.6 21.333 46.933 46.933 46.933 8.533 0 17.067-4.267 21.333-4.267l46.933 46.933 21.333-21.333-46.933-46.933c4.267-4.267 4.267-12.8 4.267-21.333z" />
|
||||
<glyph unicode="" glyph-name="invoiceIn" d="M320 358.4h128c12.8 0 21.333 8.533 21.333 21.333s-8.533 21.333-21.333 21.333h-128c-12.8 0-21.333-8.533-21.333-21.333s8.533-21.333 21.333-21.333zM832 396.8c-8.533 0-12.8 0-21.333 4.267v-358.4c0-34.133-29.867-64-64-64s-64 29.867-64 64v42.667c0 12.8-8.533 21.333-21.333 21.333h-640c-12.8 0-21.333-8.533-21.333-21.333v-42.667c0-59.733 46.933-106.667 106.667-106.667h640c59.733 0 106.667 46.933 106.667 106.667v358.4c-8.533 0-12.8-4.267-21.333-4.267zM128-21.333h-21.333c-34.133 0-64 29.867-64 64v21.333h597.333v-21.333c0-25.6 8.533-46.933 21.333-64h-533.333zM149.333 149.333c12.8 0 21.333 8.533 21.333 21.333v682.667c0 34.133 29.867 64 64 64h597.333c-12.8-17.067-21.333-38.4-21.333-64v-68.267c8.533 0 12.8 4.267 21.333 4.267s12.8 0 21.333-4.267v68.267c0 34.133 29.867 64 64 64s64-29.867 64-64v-42.667h-64c-12.8 0-21.333-8.533-21.333-21.333 0-4.267 4.267-12.8 4.267-12.8 4.267 0 8.533-4.267 12.8-8.533 0 0 0 0 0 0h85.333c17.067 0 25.6 8.533 25.6 21.333v64c0 59.733-46.933 106.667-106.667 106.667h-682.667c-59.733 0-106.667-46.933-106.667-106.667v-682.667c0-12.8 8.533-21.333 21.333-21.333zM614.4 366.933c8.533 0 17.067 0 21.333-4.267s12.8-4.267 17.067-8.533c4.267-4.267 12.8-4.267 17.067-4.267 0 0 4.267 4.267 4.267 4.267s4.267 4.267 4.267 4.267c0 4.267 4.267 4.267 4.267 8.533s0 8.533-4.267 12.8c-8.533 8.533-17.067 12.8-29.867 17.067-21.333 8.533-51.2 8.533-76.8-4.267-12.8-4.267-25.6-12.8-34.133-25.6-8.533-8.533-12.8-21.333-17.067-29.867h-17.067c-4.267 0-8.533 0-12.8-4.267s-4.267-8.533-4.267-12.8c0-4.267 0-8.533 4.267-12.8s8.533-4.267 12.8-4.267h8.533c0 0 0-4.267 0-4.267s0 0 0-4.267h-8.533c-4.267 0-8.533 0-12.8-4.267s-4.267-8.533-4.267-12.8c0-4.267 0-8.533 4.267-12.8s8.533-4.267 12.8-4.267h12.8c4.267-12.8 8.533-21.333 17.067-34.133s21.333-21.333 34.133-25.6c12.8-4.267 25.6-8.533 42.667-8.533 25.6 0 46.933 8.533 64 21.333 8.533 8.533 8.533 12.8 8.533 21.333 0 4.267 0 8.533-4.267 12.8s-12.8 8.533-21.333 0c-12.8-8.533-25.6-12.8-42.667-12.8-12.8 0-25.6 4.267-38.4 12.8-8.533 4.267-12.8 12.8-21.333 21.333h64c4.267 0 8.533 4.267 12.8 4.267 0 0 4.267 4.267 4.267 12.8 0 4.267 0 8.533-4.267 12.8 0 0-4.267 4.267-12.8 4.267h-72.533c0 0 0 0 0 4.267 0 0 0 4.267 0 4.267h89.6c4.267 0 8.533 4.267 12.8 4.267 4.267 4.267 4.267 8.533 4.267 12.8s0 8.533-4.267 12.8c0 0-4.267 4.267-12.8 4.267h-76.8c4.267 8.533 12.8 12.8 17.067 21.333 12.8-4.267 25.6 0 38.4 0zM635.733 593.067c0 8.533 0 17.067 4.267 25.6h-320c-12.8 0-21.333-8.533-21.333-21.333s8.533-21.333 21.333-21.333h320c0 4.267-4.267 12.8-4.267 17.067zM657.067 512h-337.067c-12.8 0-21.333-8.533-21.333-21.333s8.533-21.333 21.333-21.333h341.333c8.533 0 12.8 4.267 17.067 8.533-8.533 8.533-17.067 21.333-21.333 34.133zM832 746.667c-85.333 0-153.6-68.267-153.6-153.6s68.267-153.6 153.6-153.6 153.6 68.267 153.6 153.6c0 85.333-68.267 153.6-153.6 153.6zM921.6 576h-81.067v-42.667c0-8.533-4.267-12.8-12.8-8.533l-98.133 55.467c-8.533 4.267-8.533 12.8 0 17.067l98.133 55.467c8.533 4.267 12.8 0 12.8-8.533v-42.667h81.067c8.533 0 17.067-8.533 17.067-17.067 0 0-4.267-8.533-17.067-8.533z" />
|
||||
<glyph unicode="" glyph-name="invoiceOut" d="M320 358.4h128c12.8 0 21.333 8.533 21.333 21.333s-8.533 21.333-21.333 21.333h-128c-12.8 0-21.333-8.533-21.333-21.333s8.533-21.333 21.333-21.333zM832 396.8c-8.533 0-12.8 0-21.333 4.267v-358.4c0-34.133-29.867-64-64-64s-64 29.867-64 64v42.667c0 12.8-8.533 21.333-21.333 21.333h-640c-12.8 0-21.333-8.533-21.333-21.333v-42.667c0-59.733 46.933-106.667 106.667-106.667h640c59.733 0 106.667 46.933 106.667 106.667v358.4c-8.533 0-12.8-4.267-21.333-4.267zM128-21.333h-21.333c-34.133 0-64 29.867-64 64v21.333h597.333v-21.333c0-25.6 8.533-46.933 21.333-64h-533.333zM149.333 149.333c12.8 0 21.333 8.533 21.333 21.333v682.667c0 34.133 29.867 64 64 64h597.333c-12.8-17.067-21.333-38.4-21.333-64v-68.267c8.533 0 12.8 4.267 21.333 4.267s12.8 0 21.333-4.267v68.267c0 34.133 29.867 64 64 64s64-29.867 64-64v-42.667h-64c-12.8 0-21.333-8.533-21.333-21.333 0-4.267 4.267-12.8 4.267-12.8 4.267 0 8.533-4.267 12.8-8.533 0 0 0 0 0 0h85.333c17.067 0 25.6 8.533 25.6 21.333v64c0 59.733-46.933 106.667-106.667 106.667h-682.667c-59.733 0-106.667-46.933-106.667-106.667v-682.667c0-12.8 8.533-21.333 21.333-21.333zM614.4 366.933c8.533 0 17.067 0 21.333-4.267s12.8-4.267 17.067-8.533c4.267-4.267 12.8-4.267 17.067-4.267 0 0 4.267 4.267 4.267 4.267s4.267 4.267 4.267 4.267c0 4.267 4.267 4.267 4.267 8.533s0 8.533-4.267 12.8c-8.533 8.533-17.067 12.8-29.867 17.067-21.333 8.533-51.2 8.533-76.8-4.267-12.8-4.267-25.6-12.8-34.133-25.6-8.533-8.533-12.8-21.333-17.067-29.867h-17.067c-4.267 0-8.533 0-12.8-4.267s-4.267-8.533-4.267-12.8c0-4.267 0-8.533 4.267-12.8s8.533-4.267 12.8-4.267h8.533c0 0 0-4.267 0-4.267s0 0 0-4.267h-8.533c-4.267 0-8.533 0-12.8-4.267s-4.267-8.533-4.267-12.8c0-4.267 0-8.533 4.267-12.8s8.533-4.267 12.8-4.267h12.8c4.267-12.8 8.533-21.333 17.067-34.133s21.333-21.333 34.133-25.6c12.8-4.267 25.6-8.533 42.667-8.533 25.6 0 46.933 8.533 64 21.333 8.533 8.533 8.533 12.8 8.533 21.333 0 4.267 0 8.533-4.267 12.8s-12.8 8.533-21.333 0c-12.8-8.533-25.6-12.8-42.667-12.8-12.8 0-25.6 4.267-38.4 12.8-8.533 4.267-12.8 12.8-21.333 21.333h64c4.267 0 8.533 4.267 12.8 4.267 0 0 4.267 4.267 4.267 12.8 0 4.267 0 8.533-4.267 12.8 0 0-4.267 4.267-12.8 4.267h-72.533c0 0 0 0 0 4.267 0 0 0 4.267 0 4.267h89.6c4.267 0 8.533 4.267 12.8 4.267 4.267 4.267 4.267 8.533 4.267 12.8s0 8.533-4.267 12.8c0 0-4.267 4.267-12.8 4.267h-76.8c4.267 8.533 12.8 12.8 17.067 21.333 12.8-4.267 25.6 0 38.4 0zM635.733 593.067c0 8.533 0 17.067 4.267 25.6h-320c-12.8 0-21.333-8.533-21.333-21.333s8.533-21.333 21.333-21.333h320c0 4.267-4.267 12.8-4.267 17.067zM657.067 512h-337.067c-12.8 0-21.333-8.533-21.333-21.333s8.533-21.333 21.333-21.333h341.333c8.533 0 12.8 4.267 17.067 8.533-8.533 8.533-17.067 21.333-21.333 34.133zM832 746.667c-85.333 0-153.6-68.267-153.6-153.6s68.267-153.6 153.6-153.6 153.6 68.267 153.6 153.6c0 85.333-68.267 153.6-153.6 153.6zM934.4 584.533l-98.133-55.467c-8.533-4.267-12.8 0-12.8 8.533v38.4h-81.067c-12.8 0-17.067 8.533-17.067 17.067s8.533 17.067 17.067 17.067h81.067v42.667c0 8.533 4.267 12.8 12.8 8.533l98.133-55.467c8.533-8.533 8.533-17.067 0-21.333z" />
|
||||
<glyph unicode="" glyph-name="invoiceOut" d="M320 358.4h128c12.8 0 21.333 8.533 21.333 21.333s-8.533 21.333-21.333 21.333h-128c-12.8 0-21.333-8.533-21.333-21.333s8.533-21.333 21.333-21.333zM832 746.667c85.333 0 153.6-68.267 153.6-153.6s-68.267-153.6-153.6-153.6-153.6 68.267-153.6 153.6 68.267 153.6 153.6 153.6zM742.4 576h81.067v-42.667c0-8.533 4.267-12.8 12.8-8.533l98.133 55.467c8.533 4.267 8.533 12.8 0 17.067l-98.133 55.467c-8.533 4.267-12.8 0-12.8-8.533v-42.667h-81.067c-8.533 0-17.067-8.533-17.067-17.067 0 0 4.267-8.533 17.067-8.533zM720.64 231.68c-3.413-8.533-8.96-16.213-15.36-22.613-6.827-6.4-14.080-11.947-22.613-16.64-8.533-4.267-17.493-7.68-26.88-10.24s-18.773-3.413-28.16-3.413c-12.373 0-24.32 2.133-35.413 6.4s-20.907 9.813-29.867 17.067c-8.96 7.253-16.64 15.36-23.040 25.173-6.4 9.387-11.52 19.627-14.933 30.72h-33.28l9.813 23.467h17.92c-0.427 4.267-0.853 8.96-0.853 14.080v2.133h-22.187l9.387 23.467h15.787c2.56 11.52 6.827 22.613 12.8 32.853 5.973 10.667 13.653 19.627 23.040 27.733s20.053 14.507 32 19.2c12.373 4.693 25.6 7.253 40.533 7.253 20.907 0 38.827-4.693 54.187-13.653s26.453-20.907 34.133-35.84l-33.707-23.467c-2.987 6.4-6.827 11.947-10.667 16.213-4.267 4.267-8.96 7.68-13.653 10.24s-9.813 4.267-15.36 5.547c-5.547 1.28-10.667 1.707-15.787 1.707-8.107 0-15.787-1.28-22.613-3.84s-12.8-5.973-17.92-10.24c-5.12-4.267-9.387-9.387-13.227-15.36s-6.4-11.947-8.107-18.773h81.92l-9.387-23.467h-76.373v-3.413c0-4.267 0.427-8.533 0.853-12.8h74.667l-9.387-23.467h-58.453c5.547-11.947 13.227-21.76 23.467-29.013s21.76-11.093 35.413-11.093c5.12 0 10.24 0.427 15.787 1.707s10.667 3.413 15.787 5.973c5.12 2.987 9.387 6.4 14.080 10.667 4.267 4.267 7.68 9.813 10.24 15.787l35.413-20.053zM634.88 576h-314.88c-12.8 0-21.333 8.533-21.333 21.333s8.533 21.333 21.333 21.333h315.733c-1.28-8.533-2.56-16.64-2.56-25.6 0-5.973 1.28-11.52 1.707-17.067zM673.707 473.6c-2.987-2.56-6.827-4.267-12.373-4.267h-341.333c-12.8 0-21.333 8.533-21.333 21.333s8.533 21.333 21.333 21.333h330.667c5.973-13.653 14.080-26.453 23.040-38.4zM832 394.24c-7.253 0-14.080 1.28-21.333 2.133v-353.707c0-34.133-29.867-64-64-64s-64 29.867-64 64v42.667c0 12.8-8.533 21.333-21.333 21.333h-640c-12.8 0-21.333-8.533-21.333-21.333v-42.667c0-59.733 46.933-106.667 106.667-106.667h640c59.733 0 106.667 46.933 106.667 106.667v353.707c-7.253-0.853-14.080-2.133-21.333-2.133zM128-21.333h-21.333c-34.133 0-64 29.867-64 64v21.333h597.333v-21.333c0-25.6 8.533-46.933 21.333-64h-533.333zM832 917.333h-597.333c-34.133 0-64-29.867-64-64v-682.667c0-12.8-8.533-21.333-21.333-21.333s-21.333 8.533-21.333 21.333v682.667c0 59.733 46.933 106.667 106.667 106.667h682.667c59.733 0 106.667-46.933 106.667-106.667v-64c0-12.8-8.533-21.333-25.6-21.333h-73.387c-8.533 4.267-17.067 8.533-26.027 11.52-1.28 2.987-2.987 7.253-2.987 9.813 0 12.8 8.533 21.333 21.333 21.333h64v42.667c0 34.133-29.867 64-64 64s-64-29.867-64-64v-63.573c-7.253 0.853-14.080 2.133-21.333 2.133s-14.080-1.28-21.333-2.133v63.573c0 25.6 8.533 46.933 21.333 64z" />
|
||||
<glyph unicode="" glyph-name="invoiceIn" d="M320 358.4h128c12.8 0 21.333 8.533 21.333 21.333s-8.533 21.333-21.333 21.333h-128c-12.8 0-21.333-8.533-21.333-21.333s8.533-21.333 21.333-21.333zM832 746.667c-85.333 0-153.6-68.267-153.6-153.6s68.267-153.6 153.6-153.6 153.6 68.267 153.6 153.6-68.267 153.6-153.6 153.6zM921.6 576h-81.067v-42.667c0-8.533-4.267-12.8-12.8-8.533l-98.133 55.467c-8.533 4.267-8.533 12.8 0 17.067l98.133 55.467c8.533 4.267 12.8 0 12.8-8.533v-42.667h81.067c8.533 0 17.067-8.533 17.067-17.067 0 0-4.267-8.533-17.067-8.533zM720.64 231.68c-3.413-8.533-8.96-16.213-15.36-22.613-6.827-6.4-14.080-11.947-22.613-16.64-8.533-4.267-17.493-7.68-26.88-10.24s-18.773-3.413-28.16-3.413c-12.373 0-24.32 2.133-35.413 6.4s-20.907 9.813-29.867 17.067c-8.96 7.253-16.64 15.36-23.040 25.173-6.4 9.387-11.52 19.627-14.933 30.72h-33.28l9.813 23.467h17.92c-0.427 4.267-0.853 8.96-0.853 14.080v2.133h-22.187l9.387 23.467h15.787c2.56 11.52 6.827 22.613 12.8 32.853 5.973 10.667 13.653 19.627 23.040 27.733s20.053 14.507 32 19.2c12.373 4.693 25.6 7.253 40.533 7.253 20.907 0 38.827-4.693 54.187-13.653s26.453-20.907 34.133-35.84l-33.707-23.467c-2.987 6.4-6.827 11.947-10.667 16.213-4.267 4.267-8.96 7.68-13.653 10.24s-9.813 4.267-15.36 5.547c-5.547 1.28-10.667 1.707-15.787 1.707-8.107 0-15.787-1.28-22.613-3.84s-12.8-5.973-17.92-10.24c-5.12-4.267-9.387-9.387-13.227-15.36s-6.4-11.947-8.107-18.773h81.92l-9.387-23.467h-76.373v-3.413c0-4.267 0.427-8.533 0.853-12.8h74.667l-9.387-23.467h-58.453c5.547-11.947 13.227-21.76 23.467-29.013s21.76-11.093 35.413-11.093c5.12 0 10.24 0.427 15.787 1.707s10.667 3.413 15.787 5.973c5.12 2.987 9.387 6.4 14.080 10.667 4.267 4.267 7.68 9.813 10.24 15.787l35.413-20.053zM634.88 576h-314.88c-12.8 0-21.333 8.533-21.333 21.333s8.533 21.333 21.333 21.333h315.733c-1.28-8.533-2.56-16.64-2.56-25.6 0-5.973 1.28-11.52 1.707-17.067zM673.707 473.6c-2.987-2.56-6.827-4.267-12.373-4.267h-341.333c-12.8 0-21.333 8.533-21.333 21.333s8.533 21.333 21.333 21.333h330.667c5.973-13.653 14.080-26.453 23.040-38.4zM832 394.24c-7.253 0-14.080 1.28-21.333 2.133v-353.707c0-34.133-29.867-64-64-64s-64 29.867-64 64v42.667c0 12.8-8.533 21.333-21.333 21.333h-640c-12.8 0-21.333-8.533-21.333-21.333v-42.667c0-59.733 46.933-106.667 106.667-106.667h640c59.733 0 106.667 46.933 106.667 106.667v353.707c-7.253-0.853-14.080-2.133-21.333-2.133zM128-21.333h-21.333c-34.133 0-64 29.867-64 64v21.333h597.333v-21.333c0-25.6 8.533-46.933 21.333-64h-533.333zM832 917.333h-597.333c-34.133 0-64-29.867-64-64v-682.667c0-12.8-8.533-21.333-21.333-21.333s-21.333 8.533-21.333 21.333v682.667c0 59.733 46.933 106.667 106.667 106.667h682.667c59.733 0 106.667-46.933 106.667-106.667v-64c0-12.8-8.533-21.333-25.6-21.333h-73.387c-8.533 4.267-17.067 8.533-26.027 11.52-1.28 2.987-2.987 7.253-2.987 9.813 0 12.8 8.533 21.333 21.333 21.333h64v42.667c0 34.133-29.867 64-64 64s-64-29.867-64-64v-63.573c-7.253 0.853-14.080 2.133-21.333 2.133s-14.080-1.28-21.333-2.133v63.573c0 25.6 8.533 46.933 21.333 64z" />
|
||||
<glyph unicode="" glyph-name="supplierfalse" d="M198.827 882.773c22.187 0.427 41.813-14.080 48.64-34.133l8.107-22.187 105.813-105.813-54.187 149.333c-25.6 59.733-89.6 89.6-149.333 72.533l-13.653-5.12 54.613-54.613zM708.693 129.28l-173.653 173.653 15.36-43.093c-8.533-4.267-12.8-4.267-21.333-4.267l-29.867 83.2-108.373 108.373 74.24-208.64c-42.667-25.6-72.533-76.8-72.533-132.267 0-89.6 72.533-157.867 157.867-157.867 89.6 0 157.867 72.533 157.867 157.867 0 8.533-4.267 12.8-4.267 21.333l4.693 1.707zM550.4 12.373c-51.2 0-93.867 42.667-93.867 93.867s42.667 93.867 93.867 93.867 93.867-42.667 93.867-93.867c0-55.467-42.667-93.867-93.867-93.867zM960 289.707l-122.453-45.227 49.493-49.067 94.293 34.56zM504.32 577.707l-0.853 2.133 76.8 29.867 17.067-51.2c4.267-12.8 17.067-21.333 29.867-21.333 4.267 0 8.533 0 12.8 0l115.2 42.667c8.533 4.267 12.8 8.533 17.067 17.067s4.267 17.067 0 25.6l-17.067 51.2 76.8 29.867 119.467-332.8-174.507-65.707 45.653-45.653 180.053 64.427c8.533 4.267 12.8 8.533 17.067 17.067s4.267 17.067 4.267 21.333l-145.067 396.8c-4.267 8.533-8.533 12.8-17.067 17.067s-17.067 4.267-25.6 0l-136.533-51.2-115.2-42.667-134.4-50.347 54.187-54.187zM695.467 656.64l8.533-21.333-59.733-21.333-8.533 21.333 59.733 21.333zM896 439.040l-98.133-34.133 21.333-59.733 98.133 34.133zM39.253 960c-9.813 0-20.053-3.84-27.733-11.52-15.36-15.787-15.36-40.533 0-55.893l945.493-945.067c7.68-7.68 17.493-11.52 27.733-11.52 9.813 0 20.053 3.84 27.733 11.52 15.36 15.787 15.36 40.533 0 55.893l-945.493 945.067c-7.68 7.68-17.493 11.52-27.733 11.52z" />
|
||||
<glyph unicode="" glyph-name="wiki" d="M793.6 733.867c0 0 4.267 0 4.267 0l76.8 12.8v-42.667c0-34.133-21.333-68.267-46.933-72.533 0 0-4.267 0-4.267 0l-76.8-12.8v42.667c0 34.133 21.333 64 46.933 72.533zM742.4 597.333l38.4 4.267c12.8 0 25.6-12.8 25.6-29.867v-21.333l-38.4-4.267c-12.8 0-25.6 12.8-25.6 29.867v21.333zM618.667 699.733l68.267 8.533c25.6 4.267 42.667-21.333 42.667-55.467v-38.4l-68.267-8.533c-25.6-4.267-42.667 21.333-42.667 55.467v38.4zM665.6 588.8c4.267 0 4.267 0 0 0l59.733 4.267v-29.867c0-25.6-17.067-46.933-34.133-55.467 0 0-4.267 0-4.267 0l-55.467-8.533v29.867c4.267 29.867 17.067 51.2 34.133 59.733zM443.733 648.533c0 0-4.267 0-4.267 0-119.467 85.333-273.067 46.933-277.333 46.933s-8.533 0-12.8 8.533c0 4.267 0 8.533 8.533 12.8 0 0 42.667 12.8 98.133 8.533 51.2 0 128-12.8 196.267-59.733 4.267-4.267 4.267-8.533 4.267-12.8-4.267-4.267-8.533-4.267-12.8-4.267zM443.733 512c0 0-4.267 0-4.267 0-119.467 85.333-273.067 46.933-277.333 46.933s-8.533 0-12.8 8.533c0 4.267 0 8.533 8.533 12.8 0 0 42.667 12.8 98.133 8.533 51.2 0 128-12.8 196.267-59.733 4.267-4.267 4.267-8.533 4.267-12.8-4.267 0-8.533-4.267-12.8-4.267zM443.733 379.733c0 0-4.267 0-4.267 0-119.467 85.333-273.067 46.933-277.333 46.933s-8.533 0-12.8 8.533c0 4.267 0 8.533 8.533 12.8 0 0 42.667 12.8 98.133 8.533 51.2 0 128-12.8 196.267-59.733 4.267-4.267 4.267-8.533 4.267-12.8-4.267 0-8.533-4.267-12.8-4.267zM443.733 247.467c0 0-4.267 0-4.267 0-119.467 85.333-273.067 46.933-277.333 46.933s-8.533 0-12.8 8.533c0 4.267 0 8.533 8.533 12.8 0 0 42.667 12.8 98.133 8.533 51.2 0 128-12.8 196.267-59.733 4.267-4.267 4.267-8.533 4.267-12.8-4.267 0-8.533-4.267-12.8-4.267zM588.8 379.733c-4.267 0-4.267 0-8.533 4.267s0 8.533 4.267 12.8c68.267 46.933 140.8 59.733 196.267 59.733s93.867-8.533 98.133-8.533c4.267 0 8.533-8.533 8.533-12.8s-8.533-8.533-12.8-8.533v0c0 0-153.6 38.4-277.333-46.933-4.267 4.267-4.267 0-8.533 0zM588.8 247.467c-4.267 0-4.267 0-8.533 4.267s0 8.533 4.267 12.8c68.267 46.933 140.8 59.733 196.267 59.733s93.867-8.533 98.133-8.533c4.267 0 8.533-8.533 8.533-12.8s-8.533-8.533-12.8-8.533v0c0 0-153.6 38.4-277.333-46.933-4.267 4.267-4.267 0-8.533 0zM985.6 738.133v64l-8.533 4.267c-4.267 0-81.067 29.867-179.2 29.867-106.667 0-200.533-34.133-277.333-98.133-76.8 64-170.667 98.133-277.333 98.133-102.4 0-174.933-29.867-179.2-29.867l-12.8-4.267v-59.733c-34.133-4.267-51.2-17.067-51.2-34.133v-614.4h452.267c17.067-12.8 38.4-21.333 64-21.333s46.933 8.533 64 21.333h443.733v614.4c0 17.067-17.067 25.6-38.4 29.867v0zM512 145.067c-38.4 17.067-166.4 64-298.667 64-51.2 0-98.133-8.533-136.533-21.333v597.333c21.333 8.533 85.333 25.6 162.133 25.6 98.133 0 183.467-29.867 256-89.6v-358.4l17.067 17.067v-234.667zM955.733 183.467c-42.667 17.067-89.6 25.6-140.8 25.6-128 0-251.733-51.2-290.133-64v238.933l17.067-17.067v349.867c68.267 59.733 153.6 89.6 256 89.6 76.8 0 136.533-17.067 162.133-25.6v-597.333z" />
|
||||
<glyph unicode="" glyph-name="attach" d="M960 866.133c-42.667 42.667-98.133 64-157.867 64s-115.2-21.333-157.867-64l-593.067-593.067c-34.133-34.133-55.467-85.333-51.2-136.533 0-42.667 17.067-81.067 46.933-110.933 34.133-38.4 81.067-59.733 132.267-59.733 46.933 0 93.867 17.067 128 51.2l541.867 546.133c25.6 25.6 42.667 64 42.667 98.133s-12.8 68.267-38.4 93.867c-25.6 25.6-59.733 38.4-98.133 38.4-34.133 0-72.533-17.067-98.133-42.667l-354.133-354.133c-4.267 0-4.267-4.267-4.267-12.8s4.267-12.8 8.533-17.067 25.6-8.533 34.133 0l354.133 354.133c12.8 17.067 38.4 25.6 59.733 25.6 25.6 0 51.2-12.8 68.267-34.133 8.533-12.8 17.067-25.6 17.067-42.667 4.267-25.6-4.267-55.467-25.6-72.533l-541.867-541.867c-25.6-25.6-55.467-38.4-93.867-38.4-34.133 0-68.267 12.8-93.867 38.4s-38.4 59.733-38.4 93.867c0 34.133 12.8 68.267 38.4 93.867l588.8 584.533c34.133 34.133 76.8 51.2 123.733 51.2s89.6-17.067 123.733-51.2c34.133-34.133 51.2-76.8 51.2-123.733s-17.067-89.6-51.2-123.733l-401.067-401.067c-4.267-4.267-8.533-12.8-8.533-17.067 0-8.533 4.267-12.8 8.533-17.067 8.533-8.533 25.6-8.533 34.133 0l401.067 401.067c89.6 89.6 89.6 230.4 4.267 320z" />
|
||||
<glyph unicode="" glyph-name="zone2" d="M98.133 17.067c-4.267 29.867-12.8 64-17.067 93.867-17.067 98.133-34.133 192-51.2 290.133-12.8 46.933-21.333 98.133-29.867 149.333 0 4.267 0 8.533 4.267 8.533 42.667 21.333 85.333 42.667 128 59.733 0 0 0 0 4.267 0 4.267-8.533 8.533-12.8 12.8-21.333-21.333-8.533-42.667-21.333-64-29.867-17.067-8.533-34.133-17.067-51.2-21.333-4.267 0-4.267-4.267-4.267-8.533 8.533-42.667 17.067-85.333 25.6-132.267 0-4.267 4.267-4.267 4.267-8.533 8.533-4.267 17.067-8.533 25.6-17.067 0-4.267-4.267-12.8-8.533-17.067-4.267 4.267-12.8 4.267-17.067 8.533 17.067-102.4 38.4-209.067 55.467-311.467 17.067 8.533 29.867 12.8 42.667 21.333 51.2 25.6 102.4 51.2 153.6 72.533 4.267 0 8.533 0 17.067 0 68.267-4.267 136.533-12.8 204.8-17.067 0 0 4.267 0 8.533 0-4.267 17.067-4.267 34.133-8.533 51.2-12.8 68.267-25.6 136.533-38.4 204.8 0 8.533-4.267 17.067-12.8 25.6-4.267 4.267-4.267 8.533-8.533 12.8 12.8 4.267 8.533 17.067 8.533 25.6-8.533 51.2-17.067 106.667-29.867 157.867 0 4.267 0 4.267-8.533 4.267-17.067 0-38.4 4.267-55.467 4.267 4.267 8.533 8.533 17.067 12.8 21.333 0 0 4.267 4.267 8.533 4.267 17.067 0 34.133-4.267 46.933-4.267 4.267 0 8.533 0 12.8 0 68.267 29.867 132.267 64 200.533 93.867 4.267 4.267 8.533 8.533 12.8 8.533 68.267-4.267 136.533-8.533 204.8-17.067 8.533 0 17.067 0 29.867-4.267 4.267 0 8.533-4.267 8.533-8.533 12.8-64 25.6-132.267 34.133-196.267 17.067-102.4 38.4-204.8 55.467-311.467 0-8.533 4.267-17.067 4.267-25.6-17.067 0-34.133 4.267-51.2 4.267-42.667 4.267-89.6 8.533-132.267 12.8-17.067 0-38.4 4.267-55.467 4.267-4.267 0-12.8 0-17.067-4.267-68.267-29.867-132.267-64-200.533-93.867 0 0-4.267 0-8.533 0-76.8 8.533-149.333 12.8-226.133 21.333-4.267 0-8.533 0-12.8 0-72.533-34.133-140.8-68.267-213.333-102.4 0-4.267 0-8.533-4.267-8.533zM989.867 217.6c0 4.267 0 4.267 0 8.533-8.533 34.133-12.8 72.533-21.333 106.667-8.533 46.933-17.067 89.6-25.6 136.533 0 8.533-4.267 12.8-8.533 17.067-8.533 4.267-12.8 12.8-21.333 17.067 4.267 8.533 8.533 12.8 12.8 17.067 4.267-4.267 8.533-4.267 12.8-8.533-4.267 12.8-4.267 21.333-4.267 34.133-8.533 46.933-17.067 93.867-25.6 145.067 0 4.267-4.267 8.533-8.533 8.533-68.267 4.267-136.533 12.8-209.067 17.067-4.267 0-8.533 0-12.8-4.267-64-29.867-123.733-59.733-187.733-85.333-4.267-4.267-8.533-4.267-4.267-12.8 4.267-29.867 12.8-64 17.067-93.867 4.267-21.333 8.533-42.667 12.8-59.733 12.8-4.267 12.8-12.8 21.333-21.333-12.8-4.267-12.8-12.8-12.8-25.6 12.8-68.267 25.6-132.267 38.4-200.533 4.267-25.6 8.533-51.2 12.8-76.8 4.267 0 4.267 0 8.533 4.267 59.733 29.867 119.467 59.733 183.467 89.6-4.267 4.267 0 4.267 4.267 4.267 51.2-4.267 106.667-8.533 157.867-12.8 21.333 0 38.4-4.267 59.733-4.267zM260.267 469.333c-12.8 17.067-25.6 34.133-38.4 46.933-29.867 46.933-59.733 93.867-85.333 145.067-12.8 29.867-21.333 64-17.067 102.4 8.533 51.2 34.133 85.333 81.067 102.4 55.467 21.333 123.733 8.533 162.133-34.133 34.133-34.133 42.667-76.8 34.133-123.733-8.533-42.667-25.6-76.8-46.933-115.2-25.6-42.667-55.467-81.067-85.333-123.733 0 4.267-4.267 0-4.267 0zM260.267 819.2c-46.933 0-81.067-34.133-81.067-81.067s38.4-81.067 81.067-81.067c46.933 0 81.067 38.4 85.333 81.067 0 42.667-38.4 81.067-85.333 81.067zM358.4 349.867c4.267-8.533 4.267-12.8 8.533-21.333-12.8-4.267-25.6-12.8-38.4-17.067-4.267 8.533-4.267 12.8-8.533 21.333 12.8 4.267 25.6 12.8 38.4 17.067zM226.133 302.933c0 8.533 4.267 17.067 4.267 21.333 12.8 0 25.6-4.267 38.4-4.267 0-8.533 0-12.8 0-25.6-12.8 8.533-29.867 8.533-42.667 8.533zM413.867 354.133c-4.267 8.533-8.533 12.8-12.8 21.333 12.8 8.533 21.333 17.067 34.133 25.6 4.267-4.267 8.533-12.8 12.8-17.067-12.8-12.8-21.333-21.333-34.133-29.867zM179.2 341.333c-4.267-8.533-4.267-12.8-8.533-21.333-12.8 4.267-25.6 8.533-38.4 17.067 4.267 8.533 4.267 12.8 8.533 21.333 12.8-8.533 25.6-12.8 38.4-17.067zM682.667 580.267c-12.8-8.533-21.333-17.067-34.133-21.333-4.267 4.267-8.533 12.8-12.8 17.067 12.8 8.533 25.6 17.067 38.4 25.6 4.267-8.533 4.267-17.067 8.533-21.333zM878.933 558.933c-4.267-8.533-8.533-12.8-12.8-21.333-12.8 8.533-25.6 17.067-34.133 21.333 4.267 8.533 8.533 12.8 8.533 21.333 12.8-8.533 25.6-17.067 38.4-21.333zM571.733 486.4c-4.267 4.267-8.533 12.8-12.8 17.067 8.533 8.533 21.333 21.333 29.867 29.867 4.267-4.267 8.533-12.8 12.8-17.067-8.533-8.533-17.067-21.333-29.867-29.867zM785.067 610.133c-4.267-8.533-4.267-17.067-8.533-21.333-12.8 0-25.6 4.267-38.4 4.267 0 8.533 0 12.8 0 21.333 17.067 0 29.867-4.267 46.933-4.267z" />
|
||||
|
|
Before Width: | Height: | Size: 115 KiB After Width: | Height: | Size: 120 KiB |
Binary file not shown.
Binary file not shown.
|
@ -16,6 +16,7 @@ export default function moduleImport(moduleName) {
|
|||
case 'travel' : return import('travel/front');
|
||||
case 'worker' : return import('worker/front');
|
||||
case 'invoiceOut' : return import('invoiceOut/front');
|
||||
case 'invoiceIn' : return import('invoiceIn/front');
|
||||
case 'route' : return import('route/front');
|
||||
case 'entry' : return import('entry/front');
|
||||
case 'account' : return import('account/front');
|
||||
|
|
|
@ -0,0 +1,40 @@
|
|||
<vn-dialog class="edit"
|
||||
vn-id="bankEntityDialog"
|
||||
on-open="$ctrl.resetData()"
|
||||
on-accept="$ctrl.onAccept()"
|
||||
message="New bank entity">
|
||||
<tpl-body>
|
||||
<p translate>Please, ensure you put the correct data!</p>
|
||||
<vn-horizontal>
|
||||
<vn-textfield
|
||||
vn-one
|
||||
vn-focus
|
||||
vn-id="entityName"
|
||||
label="Name"
|
||||
ng-model="$ctrl.data.name"
|
||||
required="true">
|
||||
</vn-textfield>
|
||||
</vn-horizontal>
|
||||
<vn-horizontal>
|
||||
<vn-textfield
|
||||
vn-one
|
||||
vn-focus
|
||||
vn-id="bic"
|
||||
label="Swift"
|
||||
ng-model="$ctrl.data.bic"
|
||||
required="true">
|
||||
</vn-textfield>
|
||||
<vn-autocomplete vn-one
|
||||
ng-model="$ctrl.data.countryFk"
|
||||
url="Countries"
|
||||
show-field="country"
|
||||
value-field="id"
|
||||
label="Country">
|
||||
</vn-autocomplete>
|
||||
</vn-horizontal>
|
||||
</tpl-body>
|
||||
<tpl-buttons>
|
||||
<input type="button" response="cancel" translate-attr="{value: 'Cancel'}"/>
|
||||
<button id= "saveBankEntity" response="accept" translate>Save</button>
|
||||
</tpl-buttons>
|
||||
</vn-dialog>
|
|
@ -0,0 +1,37 @@
|
|||
import ngModule from '../../module';
|
||||
import Component from 'core/lib/component';
|
||||
import './style.scss';
|
||||
|
||||
class Controller extends Component {
|
||||
open() {
|
||||
this.$.bankEntityDialog.show();
|
||||
}
|
||||
|
||||
resetData() {
|
||||
this.data = {};
|
||||
}
|
||||
|
||||
onAccept() {
|
||||
try {
|
||||
if (!this.data.countryFk)
|
||||
throw new Error(`The country can't be empty`);
|
||||
|
||||
this.$http.post(`bankEntities`, this.data).then(res => {
|
||||
this.vnApp.showMessage(this.$t('The bank entity has been created. You can save the data now'));
|
||||
this.emit('response', {$response: res.data});
|
||||
});
|
||||
} catch (e) {
|
||||
this.vnApp.showError(this.$t(e.message));
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
ngModule.vnComponent('vnNewBankEntity', {
|
||||
template: require('./index.html'),
|
||||
controller: Controller,
|
||||
bindings: {
|
||||
data: '<',
|
||||
}
|
||||
});
|
|
@ -0,0 +1,53 @@
|
|||
import './index';
|
||||
|
||||
describe('Salix Component vnNewBankEntity', () => {
|
||||
let controller;
|
||||
let $httpBackend;
|
||||
let $scope;
|
||||
let $element;
|
||||
let vnApp;
|
||||
|
||||
beforeEach(ngModule('salix'));
|
||||
|
||||
beforeEach(inject(($componentController, $rootScope, _$httpBackend_, _vnApp_) => {
|
||||
$httpBackend = _$httpBackend_;
|
||||
vnApp = _vnApp_;
|
||||
jest.spyOn(vnApp, 'showError');
|
||||
$scope = $rootScope.$new();
|
||||
$element = angular.element('<vn-dialog></dialog>');
|
||||
controller = $componentController('vnNewBankEntity', {$element, $scope});
|
||||
}));
|
||||
|
||||
describe('resetData()', () => {
|
||||
it('should reset the location in the controller', () => {
|
||||
expect(controller.data).toBeUndefined();
|
||||
|
||||
controller.resetData();
|
||||
|
||||
expect(controller.data).toEqual({});
|
||||
});
|
||||
});
|
||||
|
||||
describe('onAccept()', () => {
|
||||
it('should throw an error if there is no country id in the location', () => {
|
||||
jest.spyOn(controller.vnApp, 'showMessage');
|
||||
|
||||
controller.data = {};
|
||||
|
||||
controller.onAccept();
|
||||
|
||||
expect(controller.vnApp.showError).toHaveBeenCalledWith(`The country can't be empty`);
|
||||
});
|
||||
|
||||
it('should do add the new bank entity', () => {
|
||||
controller.data = {
|
||||
countryFk: 1
|
||||
};
|
||||
|
||||
$httpBackend.expectPOST('bankEntities', controller.data).respond(200, controller.data);
|
||||
|
||||
controller.onAccept();
|
||||
$httpBackend.flush();
|
||||
});
|
||||
});
|
||||
});
|
|
@ -0,0 +1,12 @@
|
|||
New postcode: Nuevo código postal
|
||||
New city: Nueva ciudad
|
||||
New province: Nueva provincia
|
||||
Please, ensure you put the correct data!: ¡Por favor, asegúrate de poner los datos correctos!
|
||||
The postcode can't be empty: El código postal no puede quedar vacío
|
||||
The town can't be empty: La población no puede quedar vacía
|
||||
The province can't be empty: La provincia no puede quedar vacía
|
||||
The country can't be empty: El país no puede quedar vacío
|
||||
The postcode has been created. You can save the data now: Se ha creado el código postal. Ahora puedes guardar los datos
|
||||
The city has been created: Se ha creado la ciudad
|
||||
The province has been created: Se ha creado la provincia
|
||||
The bank entity has been created. You can save the data now: Se ha creado la entidad bancaria. Puedes guardar los datos ahora
|
|
@ -0,0 +1,9 @@
|
|||
@import "variables";
|
||||
|
||||
vn-new-bank-entity {
|
||||
vn-dialog {
|
||||
p {
|
||||
color: $color-alert
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,20 +1,67 @@
|
|||
<div>
|
||||
<div class="top-border">
|
||||
<span translate>Favorites</span>
|
||||
</div>
|
||||
<div
|
||||
ng-if="!$ctrl.starredCount"
|
||||
class="starred-info vn-py-md">
|
||||
<span translate class="empty">You can set modules as favorites by clicking their icon</span>
|
||||
<vn-icon icon="push_pin"></vn-icon>
|
||||
</div>
|
||||
<div class="modules">
|
||||
<a
|
||||
ng-repeat="mod in ::$ctrl.modules"
|
||||
ui-sref="{{::mod.route.state}}"
|
||||
translate-attr="{title: mod.name}"
|
||||
class="vn-shadow">
|
||||
<div>
|
||||
<vn-icon icon="{{::mod.icon || 'photo'}}"></vn-icon>
|
||||
</div>
|
||||
<h4 ng-bind-html="$ctrl.getModuleName(mod)"></h4>
|
||||
<span
|
||||
ng-show="::mod.keyBind"
|
||||
vn-tooltip="Ctrl + Alt + {{::mod.keyBind}}">
|
||||
({{::mod.keyBind}})
|
||||
</span>
|
||||
<span ng-show="::!mod.keyBind"> </span>
|
||||
</a>
|
||||
<a
|
||||
ng-repeat="mod in ::$ctrl.modules"
|
||||
ng-if='mod.starred'
|
||||
ui-sref="{{::mod.route.state}}"
|
||||
translate-attr="{title: mod.name}"
|
||||
class="vn-shadow">
|
||||
<div
|
||||
vn-tooltip="Remove from favorites"
|
||||
class="pin"
|
||||
ng-click="$ctrl.toggleStarredModule(mod, $event)">
|
||||
<vn-icon icon="remove_circle"></vn-icon>
|
||||
</div>
|
||||
<div>
|
||||
<vn-icon icon="{{::mod.icon || 'photo'}}"></vn-icon>
|
||||
</div>
|
||||
<h4 ng-bind-html="$ctrl.getModuleName(mod)"></h4>
|
||||
<span
|
||||
ng-show="::mod.keyBind"
|
||||
vn-tooltip="Ctrl + Alt + {{::mod.keyBind}}">
|
||||
({{::mod.keyBind}})
|
||||
</span>
|
||||
<span ng-show="::!mod.keyBind"> </span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div
|
||||
class="top-border"
|
||||
ng-if="$ctrl.regularCount > 0 && $ctrl.starredCount > 0">
|
||||
</div>
|
||||
<div class="modules">
|
||||
<a
|
||||
ng-repeat="mod in ::$ctrl.modules"
|
||||
ng-if='!mod.starred'
|
||||
ui-sref="{{::mod.route.state}}"
|
||||
translate-attr="{title: mod.name}"
|
||||
class="vn-shadow">
|
||||
<div
|
||||
vn-tooltip="Add to favorites"
|
||||
class="pin"
|
||||
ng-click="$ctrl.toggleStarredModule(mod, $event)">
|
||||
<vn-icon icon="push_pin"></vn-icon>
|
||||
</div>
|
||||
<div>
|
||||
<vn-icon icon="{{::mod.icon || 'photo'}}"></vn-icon>
|
||||
</div>
|
||||
<h4 ng-bind-html="$ctrl.getModuleName(mod)"></h4>
|
||||
<span
|
||||
ng-show="::mod.keyBind"
|
||||
vn-tooltip="Ctrl + Alt + {{::mod.keyBind}}">
|
||||
({{::mod.keyBind}})
|
||||
</span>
|
||||
<span ng-show="::!mod.keyBind"> </span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -9,6 +9,55 @@ export default class Controller extends Component {
|
|||
this.$sce = $sce;
|
||||
}
|
||||
|
||||
get modules() {
|
||||
return this._modules;
|
||||
}
|
||||
|
||||
set modules(value) {
|
||||
this._modules = value;
|
||||
this.getStarredModules();
|
||||
}
|
||||
|
||||
countModules() {
|
||||
this.starredCount = 0;
|
||||
this.regularCount = 0;
|
||||
this.modules.forEach(module => {
|
||||
if (module.starred) this.starredCount ++;
|
||||
else this.regularCount ++;
|
||||
});
|
||||
}
|
||||
|
||||
getStarredModules() {
|
||||
this.$http.get('starredModules/getStarredModules')
|
||||
.then(res => {
|
||||
if (!res.data.length) return;
|
||||
|
||||
for (let starredModule of res.data) {
|
||||
const module = this.modules.find(mod => mod.name === starredModule.moduleFk);
|
||||
module.starred = true;
|
||||
}
|
||||
this.countModules();
|
||||
});
|
||||
}
|
||||
|
||||
toggleStarredModule(module, event) {
|
||||
if (event.defaultPrevented) return;
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
|
||||
const params = {moduleName: module.name};
|
||||
const query = `starredModules/toggleStarredModule`;
|
||||
this.$http.post(query, params).then(res => {
|
||||
if (res.data)
|
||||
module.starred = true;
|
||||
else
|
||||
module.starred = false;
|
||||
|
||||
this.vnApp.showSuccess(this.$t('Data saved!'));
|
||||
this.countModules();
|
||||
});
|
||||
}
|
||||
|
||||
getModuleName(mod) {
|
||||
let getName = mod => {
|
||||
let name = this.$t(mod.name);
|
||||
|
|
|
@ -0,0 +1,75 @@
|
|||
import './home';
|
||||
|
||||
describe('Salix Component vnHome', () => {
|
||||
let controller;
|
||||
let $httpBackend;
|
||||
let $scope;
|
||||
let $element;
|
||||
|
||||
beforeEach(ngModule('salix'));
|
||||
|
||||
beforeEach(inject(($componentController, $rootScope, _$httpBackend_, _vnApp_, $window) => {
|
||||
$httpBackend = _$httpBackend_;
|
||||
$scope = $rootScope.$new();
|
||||
$element = angular.element('<vn-home></vn-home>');
|
||||
$window.routes = [{module: 'client', name: 'Clients'}];
|
||||
controller = $componentController('vnHome', {$element, $scope, $window});
|
||||
}));
|
||||
|
||||
describe('getStarredModules()', () => {
|
||||
it('should not set any of the modules as starred if there are no starred modules for the user', () => {
|
||||
const expectedResponse = [];
|
||||
controller._modules = [{module: 'client', name: 'Clients'}];
|
||||
|
||||
$httpBackend.whenRoute('GET', 'starredModules/getStarredModules').respond(expectedResponse);
|
||||
$httpBackend.expectGET('starredModules/getStarredModules').respond(expectedResponse);
|
||||
controller.getStarredModules();
|
||||
$httpBackend.flush();
|
||||
|
||||
expect(controller._modules.length).toEqual(1);
|
||||
expect(controller._modules[0].starred).toBeUndefined();
|
||||
});
|
||||
|
||||
it('should set the example module as starred since its the starred module for the user', () => {
|
||||
const expectedResponse = [{id: 1, moduleFk: 'Clients', workerFk: 9}];
|
||||
controller._modules = [{module: 'client', name: 'Clients'}];
|
||||
|
||||
$httpBackend.whenRoute('GET', 'starredModules/getStarredModules').respond(expectedResponse);
|
||||
$httpBackend.expectGET('starredModules/getStarredModules').respond(expectedResponse);
|
||||
controller.getStarredModules();
|
||||
$httpBackend.flush();
|
||||
|
||||
expect(controller._modules.length).toEqual(1);
|
||||
expect(controller._modules[0].starred).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
describe('toggleStarredModule()', () => {
|
||||
it(`should set the received module as starred if it wasn't starred`, () => {
|
||||
const expectedResponse = [{id: 1, moduleFk: 'Clients', workerFk: 9}];
|
||||
const event = new Event('target');
|
||||
controller._modules = [{module: 'client', name: 'Clients'}];
|
||||
|
||||
$httpBackend.whenRoute('GET', 'starredModules/getStarredModules').respond(expectedResponse);
|
||||
$httpBackend.expectPOST('starredModules/toggleStarredModule').respond(expectedResponse);
|
||||
controller.toggleStarredModule(controller._modules[0], event);
|
||||
$httpBackend.flush();
|
||||
|
||||
expect(controller._modules.length).toEqual(1);
|
||||
expect(controller._modules[0].starred).toBe(true);
|
||||
});
|
||||
|
||||
it(`should set the received module as regular if it was starred`, () => {
|
||||
const event = new Event('target');
|
||||
controller._modules = [{module: 'client', name: 'Clients', starred: true}];
|
||||
|
||||
$httpBackend.whenRoute('GET', 'starredModules/getStarredModules').respond([]);
|
||||
$httpBackend.expectPOST('starredModules/toggleStarredModule').respond(undefined);
|
||||
controller.toggleStarredModule(controller._modules[0], event);
|
||||
$httpBackend.flush();
|
||||
|
||||
expect(controller._modules.length).toEqual(1);
|
||||
expect(controller._modules[0].starred).toBe(false);
|
||||
});
|
||||
});
|
||||
});
|
|
@ -0,0 +1,4 @@
|
|||
Favorites: Favoritos
|
||||
You can set modules as favorites by clicking their icon: Puedes establecer módulos como favoritos haciendo clic en el icono
|
||||
Add to favorites: Añadir a favoritos.
|
||||
Remove from favorites: Quitar de favoritos.
|
|
@ -10,28 +10,76 @@ vn-home {
|
|||
text-align: center;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
& .starred-info{
|
||||
display: block;
|
||||
text-align: center;
|
||||
box-sizing: border-box;
|
||||
color: $color-font-secondary;
|
||||
font-size: 1.375rem;
|
||||
& > .empty {
|
||||
text-align: center;
|
||||
box-sizing: border-box;
|
||||
color: $color-font-secondary;
|
||||
font-size: 1em;
|
||||
}
|
||||
& > vn-icon {
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
}
|
||||
|
||||
& > .top-border {
|
||||
margin: 0 auto;
|
||||
flex-direction: row;
|
||||
float: center;
|
||||
max-width: 690px;
|
||||
border-bottom: 2px solid $color-font-secondary;
|
||||
line-height: 2px;
|
||||
|
||||
> span {
|
||||
height: 10px;
|
||||
margin-left: 30px;
|
||||
background-color: $color-bg;
|
||||
padding:0 11px;
|
||||
}
|
||||
}
|
||||
|
||||
& > .modules {
|
||||
padding: 10px 0 10px 0;
|
||||
display: flex;
|
||||
flex: 1;
|
||||
flex-direction: row;
|
||||
justify-content: center;
|
||||
flex-wrap: wrap;
|
||||
flex: 1;
|
||||
max-width: 704px;
|
||||
margin: 0 auto;
|
||||
|
||||
& > a {
|
||||
@extend %clickable-light;
|
||||
overflow:hidden;
|
||||
border-radius: 6px;
|
||||
background-color: $color-button;
|
||||
color: $color-font-dark;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overflow:hidden;
|
||||
justify-content: center;
|
||||
border-radius: 6px;
|
||||
height: 128px;
|
||||
width: 128px;
|
||||
margin: 8px;
|
||||
padding: 16px;
|
||||
justify-content: center;
|
||||
background-color: $color-button;
|
||||
color: $color-font-dark;
|
||||
|
||||
& .pin {
|
||||
opacity: 0;
|
||||
flex-direction: row;
|
||||
justify-content: left;
|
||||
height: 20px;
|
||||
width: 20px;
|
||||
vn-icon {
|
||||
margin: auto;
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
}
|
||||
&:hover .pin {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
& > div {
|
||||
height: 70px;
|
||||
|
@ -56,10 +104,6 @@ vn-home {
|
|||
color: inherit;
|
||||
margin: 0;
|
||||
line-height: 24px;
|
||||
|
||||
/* & > .bind-letter {
|
||||
color: #FD0;
|
||||
} */
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -14,3 +14,4 @@ import './summary';
|
|||
import './topbar/topbar';
|
||||
import './user-popover';
|
||||
import './upload-photo';
|
||||
import './bank-entity';
|
||||
|
|
|
@ -43,6 +43,7 @@ Workers: Trabajadores
|
|||
Routes: Rutas
|
||||
Locator: Localizador
|
||||
Invoices out: Facturas emitidas
|
||||
Invoices in: Fact. recibidas
|
||||
Entries: Entradas
|
||||
Users: Usuarios
|
||||
Suppliers: Proveedores
|
||||
|
|
|
@ -6,6 +6,7 @@ import './modules/zone/front/module.js';
|
|||
import './modules/claim/front/module.js';
|
||||
import './modules/client/front/module.js';
|
||||
import './modules/invoiceOut/front/module.js';
|
||||
import './modules/invoiceIn/front/module.js';
|
||||
import './modules/item/front/module.js';
|
||||
import './modules/order/front/module.js';
|
||||
import './modules/route/front/module.js';
|
||||
|
|
|
@ -92,5 +92,6 @@
|
|||
"New ticket request has been created with price": "New ticket request has been created *'{{description}}'* for day *{{shipped}}*, with a quantity of *{{quantity}}* and a price of *{{price}} €*",
|
||||
"New ticket request has been created": "New ticket request has been created *'{{description}}'* for day *{{shipped}}*, with a quantity of *{{quantity}}*",
|
||||
"There's a new urgent ticket": "There's a new urgent ticket: [{{title}}](https://cau.verdnatura.es/WorkOrder.do?woMode=viewWO&woID={{issueId}})",
|
||||
"Swift / BIC cannot be empty": "Swift / BIC cannot be empty"
|
||||
"Swift / BIC cannot be empty": "Swift / BIC cannot be empty",
|
||||
"Role name must be written in camelCase": "Role name must be written in camelCase"
|
||||
}
|
|
@ -174,5 +174,7 @@
|
|||
"That item doesn't exists": "Ese artículo no existe",
|
||||
"There's a new urgent ticket": "Hay un nuevo ticket urgente: [{{title}}](https://cau.verdnatura.es/WorkOrder.do?woMode=viewWO&woID={{issueId}})",
|
||||
"Invalid account": "Cuenta inválida",
|
||||
"Compensation account is empty": "La cuenta para compensar está vacia"
|
||||
"Compensation account is empty": "La cuenta para compensar está vacia",
|
||||
"This genus already exist": "Este genus ya existe",
|
||||
"This specie already exist": "Esta especie ya existe"
|
||||
}
|
|
@ -26,15 +26,25 @@ module.exports = Self => {
|
|||
Self.lastActiveTickets = async(id, ticketId) => {
|
||||
const ticket = await Self.app.models.Ticket.findById(ticketId);
|
||||
const query = `
|
||||
SELECT t.id, t.shipped, a.name AS agencyName, w.name AS warehouseName, ad.city AS address
|
||||
FROM vn.ticket t
|
||||
JOIN vn.ticketState ts ON t.id = ts.ticketFk
|
||||
JOIN vn.agencyMode a ON t.agencyModeFk = a.id
|
||||
JOIN vn.warehouse w ON t.warehouseFk = w.id
|
||||
JOIN vn.address ad ON t.addressFk = ad.id
|
||||
WHERE t.shipped >= CURDATE() AND t.clientFk = ? AND ts.alertLevel = 0
|
||||
AND t.id <> ? AND t.warehouseFk = ?
|
||||
ORDER BY t.shipped
|
||||
SELECT
|
||||
t.id,
|
||||
t.shipped,
|
||||
a.name AS agencyName,
|
||||
w.name AS warehouseName,
|
||||
ad.nickname AS nickname,
|
||||
ad.city AS city,
|
||||
ad.postalCode AS postalCode,
|
||||
ad.street AS street,
|
||||
pr.name AS name
|
||||
FROM ticket t
|
||||
JOIN vn.ticketState ts ON t.id = ts.ticketFk
|
||||
JOIN vn.agencyMode a ON t.agencyModeFk = a.id
|
||||
JOIN vn.warehouse w ON t.warehouseFk = w.id
|
||||
JOIN vn.address ad ON t.addressFk = ad.id
|
||||
JOIN vn.province pr ON ad.provinceFk = pr.id
|
||||
WHERE t.shipped >= CURDATE() AND t.clientFk = ? AND ts.alertLevel = 0
|
||||
AND t.id <> ? AND t.warehouseFk = ?
|
||||
ORDER BY t.shipped
|
||||
LIMIT 10`;
|
||||
|
||||
return Self.rawSql(query, [id, ticketId, ticket.warehouseFk]);
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
const app = require('vn-loopback/server/server');
|
||||
|
||||
describe('Client last active tickets', () => {
|
||||
it('should receive an array of last active tickets of Bruce Wayne', async() => {
|
||||
const ticketId = 22;
|
||||
const clientId = 109;
|
||||
const warehouseId = 5;
|
||||
const result = await app.models.Client.lastActiveTickets(clientId, ticketId, warehouseId);
|
||||
|
||||
const length = result.length;
|
||||
const anyResult = result[Math.floor(Math.random() * Math.floor(length))];
|
||||
|
||||
const properties = Object.keys(anyResult);
|
||||
|
||||
expect(properties.length).toEqual(9);
|
||||
expect(result.length).toEqual(3);
|
||||
});
|
||||
});
|
|
@ -78,6 +78,8 @@ module.exports = Self => {
|
|||
return {'ic.id': value};
|
||||
case 'salesPersonFk':
|
||||
return {'it.workerFk': value};
|
||||
case 'code':
|
||||
return {'it.code': value};
|
||||
case 'typeFk':
|
||||
return {'i.typeFk': value};
|
||||
case 'active':
|
||||
|
@ -103,6 +105,7 @@ module.exports = Self => {
|
|||
i.id AS itemFk,
|
||||
i.size,
|
||||
i.density,
|
||||
it.code,
|
||||
i.typeFk,
|
||||
i.family,
|
||||
i.isActive,
|
||||
|
|
|
@ -37,8 +37,8 @@
|
|||
<vn-th field="quantity">Quantity</vn-th>
|
||||
<vn-th field="description" style="text-align: center">Description</vn-th>
|
||||
<vn-th field="size">Size</vn-th>
|
||||
<vn-th field="tags" style="text-align: center">Tags</vn-th>
|
||||
<vn-th field="type">Type</vn-th>
|
||||
<vn-th field="name" style="text-align: center">Tags</vn-th>
|
||||
<vn-th field="code">Type</vn-th>
|
||||
<vn-th field="intrastat">Intrastat</vn-th>
|
||||
<vn-th field="origin">Origin</vn-th>
|
||||
<vn-th field="density">Density</vn-th>
|
||||
|
@ -109,7 +109,7 @@
|
|||
</vn-fetched-tags>
|
||||
</vn-td>
|
||||
<vn-td shrink title="{{::buy.type}}">
|
||||
{{::buy.type}}
|
||||
{{::buy.code}}
|
||||
</vn-td>
|
||||
<vn-td shrink title="{{::item.intrastat}}">
|
||||
{{::buy.intrastat}}
|
||||
|
|
|
@ -0,0 +1,171 @@
|
|||
|
||||
const ParameterizedSQL = require('loopback-connector').ParameterizedSQL;
|
||||
const buildFilter = require('vn-loopback/util/filter').buildFilter;
|
||||
const mergeFilters = require('vn-loopback/util/filter').mergeFilters;
|
||||
|
||||
module.exports = Self => {
|
||||
Self.remoteMethodCtx('filter', {
|
||||
description: 'Find all instances of the model matched by filter from the data source.',
|
||||
accessType: 'READ',
|
||||
accepts: [
|
||||
{
|
||||
arg: 'filter',
|
||||
type: 'object',
|
||||
description: 'Filter defining where, order, offset, and limit - must be a JSON-encoded string',
|
||||
http: {source: 'query'}
|
||||
},
|
||||
{
|
||||
arg: 'search',
|
||||
type: 'string',
|
||||
description: 'Searchs the invoiceOut by id',
|
||||
http: {source: 'query'}
|
||||
},
|
||||
{
|
||||
arg: 'supplierRef',
|
||||
type: 'string',
|
||||
description: 'The supplier reference'
|
||||
},
|
||||
{
|
||||
arg: 'fi',
|
||||
type: 'string',
|
||||
description: 'The supplier fiscal id'
|
||||
},
|
||||
{
|
||||
arg: 'serialNumber',
|
||||
type: 'number',
|
||||
description: 'The serial number'
|
||||
},
|
||||
{
|
||||
arg: 'serial',
|
||||
type: 'string',
|
||||
description: 'The serial'
|
||||
},
|
||||
{
|
||||
arg: 'amount',
|
||||
type: 'number',
|
||||
description: 'The amount'
|
||||
},
|
||||
{
|
||||
arg: 'from',
|
||||
type: 'date',
|
||||
description: `The from date filter`
|
||||
}, {
|
||||
arg: 'to',
|
||||
type: 'date',
|
||||
description: `The to date filter`
|
||||
},
|
||||
{
|
||||
arg: 'issued',
|
||||
type: 'date',
|
||||
description: 'The issued date'
|
||||
},
|
||||
{
|
||||
arg: 'account',
|
||||
type: 'number',
|
||||
description: 'The account number'
|
||||
},
|
||||
{
|
||||
arg: 'awbCode',
|
||||
type: 'string',
|
||||
description: 'The Air Waybill code'
|
||||
},
|
||||
{
|
||||
arg: 'isBooked',
|
||||
type: 'boolean',
|
||||
description: 'Whether the the invoice is booked or not',
|
||||
},
|
||||
],
|
||||
returns: {
|
||||
type: ['object'],
|
||||
root: true
|
||||
},
|
||||
http: {
|
||||
path: `/filter`,
|
||||
verb: 'GET'
|
||||
}
|
||||
});
|
||||
|
||||
Self.filter = async(ctx, filter) => {
|
||||
const conn = Self.dataSource.connector;
|
||||
const args = ctx.args;
|
||||
|
||||
if (args && args.to) {
|
||||
const dateTo = args.to;
|
||||
dateTo.setHours(23, 59, 0, 0);
|
||||
}
|
||||
|
||||
let where = buildFilter(ctx.args, (param, value) => {
|
||||
switch (param) {
|
||||
case 'search':
|
||||
return /^\d+$/.test(value)
|
||||
? {'ii.id': value}
|
||||
: {'s.name': {like: `%${value}%`}};
|
||||
case 'from':
|
||||
return {'ii.created': {gte: value}};
|
||||
case 'to':
|
||||
return {'ii.created': {lte: value}};
|
||||
case 'account':
|
||||
case 'fi':
|
||||
return {[`s.${param}`]: value};
|
||||
case 'supplierRef':
|
||||
case 'serialNumber':
|
||||
case 'serial':
|
||||
case 'issued':
|
||||
case 'isBooked':
|
||||
return {[`ii.${param}`]: value};
|
||||
case 'awbCode':
|
||||
return {'awb.code': value};
|
||||
}
|
||||
});
|
||||
|
||||
filter = mergeFilters(filter, {where});
|
||||
|
||||
let stmts = [];
|
||||
let stmt;
|
||||
|
||||
stmt = new ParameterizedSQL(
|
||||
`SELECT
|
||||
ii.id,
|
||||
ii.serialNumber,
|
||||
ii.serial,
|
||||
ii.issued,
|
||||
ii.isBooked,
|
||||
ii.supplierRef,
|
||||
ii.docFk AS dmsFk,
|
||||
s.id AS supplierFk,
|
||||
s.name AS supplierName,
|
||||
s.account,
|
||||
SUM(iid.amount) AS amount,
|
||||
awb.code AS awbCode
|
||||
FROM invoiceIn ii
|
||||
JOIN supplier s ON s.id = ii.supplierFk
|
||||
LEFT JOIN invoiceInDueDay iid ON iid.invoiceInFk = ii.id
|
||||
LEFT JOIN duaInvoiceIn dii ON dii.invoiceInFk = ii.id
|
||||
LEFT JOIN dua d ON d.id = dii.duaFk
|
||||
LEFT JOIN awb ON awb.id = d.awbFk
|
||||
LEFT JOIN company co ON co.id = ii.companyFk`
|
||||
);
|
||||
|
||||
const sqlWhere = conn.makeWhere(filter.where);
|
||||
|
||||
stmt.merge(sqlWhere);
|
||||
stmt.merge(`GROUP BY ii.id`);
|
||||
|
||||
const amount = ctx.args.amount;
|
||||
if (amount) {
|
||||
stmt.merge({
|
||||
sql: `HAVING SUM(iid.amount) = ?`,
|
||||
params: [amount],
|
||||
});
|
||||
}
|
||||
|
||||
stmt.merge(conn.makePagination(filter));
|
||||
|
||||
let itemsIndex = stmts.push(stmt) - 1;
|
||||
|
||||
let sql = ParameterizedSQL.join(stmts, ';');
|
||||
let result = await conn.executeStmt(sql);
|
||||
return itemsIndex === 0 ? result : result[itemsIndex];
|
||||
};
|
||||
};
|
||||
|
|
@ -0,0 +1,111 @@
|
|||
const app = require('vn-loopback/server/server');
|
||||
|
||||
describe('InvoiceIn filter()', () => {
|
||||
it('should return the invoice in matching supplier name', async() => {
|
||||
let ctx = {
|
||||
args: {
|
||||
search: 'Plants SL',
|
||||
}
|
||||
};
|
||||
|
||||
let result = await app.models.InvoiceIn.filter(ctx);
|
||||
|
||||
expect(result.length).toEqual(5);
|
||||
expect(result[0].supplierName).toEqual('Plants SL');
|
||||
});
|
||||
|
||||
it('should return the invoice in matching supplier reference', async() => {
|
||||
let ctx = {
|
||||
args: {
|
||||
supplierRef: '1241',
|
||||
}
|
||||
};
|
||||
|
||||
let result = await app.models.InvoiceIn.filter(ctx);
|
||||
|
||||
expect(result.length).toEqual(1);
|
||||
expect(result[0].supplierRef).toEqual('1241');
|
||||
});
|
||||
|
||||
it('should return the invoice in matching the serial number', async() => {
|
||||
let ctx = {
|
||||
args: {
|
||||
serialNumber: '1002',
|
||||
}
|
||||
};
|
||||
|
||||
let result = await app.models.InvoiceIn.filter(ctx);
|
||||
|
||||
expect(result.length).toEqual(1);
|
||||
expect(result[0].serialNumber).toEqual(1002);
|
||||
});
|
||||
|
||||
it('should return the invoice in matching the account', async() => {
|
||||
let ctx = {
|
||||
args: {
|
||||
account: '4000020002',
|
||||
}
|
||||
};
|
||||
|
||||
let result = await app.models.InvoiceIn.filter(ctx);
|
||||
|
||||
expect(result.length).toEqual(5);
|
||||
expect(result[0].account).toEqual('4000020002');
|
||||
});
|
||||
|
||||
it('should return the invoice in matching the awb code', async() => {
|
||||
let ctx = {
|
||||
args: {
|
||||
awbCode: '07546491432',
|
||||
}
|
||||
};
|
||||
|
||||
let result = await app.models.InvoiceIn.filter(ctx);
|
||||
const firstRow = result[0];
|
||||
|
||||
expect(result.length).toEqual(1);
|
||||
expect(firstRow.id).toEqual(7);
|
||||
expect(firstRow.awbCode).toEqual('07546491432');
|
||||
});
|
||||
|
||||
it('should return the invoice in matching the amount', async() => {
|
||||
let ctx = {
|
||||
args: {
|
||||
amount: '64.23',
|
||||
}
|
||||
};
|
||||
|
||||
let result = await app.models.InvoiceIn.filter(ctx);
|
||||
|
||||
expect(result.length).toEqual(1);
|
||||
expect(result[0].amount).toEqual(64.23);
|
||||
});
|
||||
|
||||
it('should return the invoice in matching "from" and "to"', async() => {
|
||||
const from = new Date();
|
||||
const to = new Date();
|
||||
from.setHours(0, 0, 0, 0);
|
||||
to.setHours(23, 59, 59, 999);
|
||||
to.setDate(to.getDate() + 1);
|
||||
const ctx = {
|
||||
args: {from, to}
|
||||
};
|
||||
|
||||
const result = await app.models.InvoiceIn.filter(ctx);
|
||||
|
||||
expect(result.length).toEqual(6);
|
||||
});
|
||||
|
||||
it('should return the booked invoice in', async() => {
|
||||
let ctx = {
|
||||
args: {
|
||||
isBooked: true,
|
||||
}
|
||||
};
|
||||
|
||||
let result = await app.models.InvoiceIn.filter(ctx);
|
||||
|
||||
expect(result.length).toEqual(6);
|
||||
expect(result[0].isBooked).toBeTruthy();
|
||||
});
|
||||
});
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"InvoiceIn": {
|
||||
"dataSource": "vn"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
module.exports = Self => {
|
||||
require('../methods/invoice-in/filter')(Self);
|
||||
};
|
|
@ -0,0 +1,67 @@
|
|||
{
|
||||
"name": "InvoiceIn",
|
||||
"base": "VnModel",
|
||||
"options": {
|
||||
"mysql": {
|
||||
"table": "invoiceIn"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"id": {
|
||||
"id": true,
|
||||
"type": "Number",
|
||||
"description": "Identifier"
|
||||
},
|
||||
"serialNumber": {
|
||||
"type": "number"
|
||||
},
|
||||
"serial": {
|
||||
"type": "string"
|
||||
},
|
||||
"issued": {
|
||||
"type": "date"
|
||||
},
|
||||
"created": {
|
||||
"type": "date"
|
||||
},
|
||||
"isBooked": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"booked": {
|
||||
"type": "date"
|
||||
},
|
||||
"operated": {
|
||||
"type": "date"
|
||||
},
|
||||
"dmsFk": {
|
||||
"type": "number",
|
||||
"mysql": {
|
||||
"columnName": "docFk"
|
||||
}
|
||||
}
|
||||
},
|
||||
"relations": {
|
||||
"company": {
|
||||
"type": "belongsTo",
|
||||
"model": "Company",
|
||||
"foreignKey": "companyFk"
|
||||
},
|
||||
"supplier": {
|
||||
"type": "belongsTo",
|
||||
"model": "Supplier",
|
||||
"foreignKey": "supplierFk"
|
||||
},
|
||||
"currency": {
|
||||
"type": "belongsTo",
|
||||
"model": "Currency",
|
||||
"foreignKey": "currencyFk"
|
||||
},
|
||||
"dms": {
|
||||
"type": "belongsTo",
|
||||
"model": "Dms",
|
||||
"foreignKey": "dmsFk"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
<vn-portal slot="menu">
|
||||
<vn-invoice-in-descriptor invoice-in="$ctrl.invoiceIn"></vn-invoice-in-descriptor>
|
||||
<vn-left-menu source="card"></vn-left-menu>
|
||||
</vn-portal>
|
||||
<ui-view></ui-view>
|
|
@ -0,0 +1,17 @@
|
|||
import ngModule from '../module';
|
||||
import ModuleCard from 'salix/components/module-card';
|
||||
|
||||
class Controller extends ModuleCard {
|
||||
reload() {
|
||||
const filter = {};
|
||||
|
||||
this.$http.get(`InvoiceIns/${this.$params.id}`, {filter})
|
||||
.then(res => this.invoiceIn = res.data);
|
||||
}
|
||||
}
|
||||
|
||||
ngModule.vnComponent('vnInvoiceInCard', {
|
||||
template: require('./index.html'),
|
||||
controller: Controller
|
||||
});
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
import './index.js';
|
||||
|
||||
describe('vnInvoiceIn', () => {
|
||||
let controller;
|
||||
let $httpBackend;
|
||||
let data = {id: 1, name: 'fooName'};
|
||||
|
||||
beforeEach(ngModule('invoiceIn'));
|
||||
|
||||
beforeEach(inject(($componentController, _$httpBackend_, $stateParams) => {
|
||||
$httpBackend = _$httpBackend_;
|
||||
|
||||
let $element = angular.element('<div></div>');
|
||||
controller = $componentController('vnInvoiceInCard', {$element});
|
||||
|
||||
$stateParams.id = data.id;
|
||||
$httpBackend.whenRoute('GET', 'InvoiceIns/:id').respond(data);
|
||||
}));
|
||||
|
||||
it('should request data and set it on the controller', () => {
|
||||
controller.reload();
|
||||
$httpBackend.flush();
|
||||
|
||||
expect(controller.invoiceIn).toEqual(data);
|
||||
});
|
||||
});
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
<slot-descriptor>
|
||||
<vn-invoice-in-descriptor>
|
||||
</vn-invoice-in-descriptor>
|
||||
</slot-descriptor>
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue