Compare commits
189 Commits
6765-ektTe
...
dev
Author | SHA1 | Date |
---|---|---|
Ivan Mas | 074fe5b0ac | |
Ivan Mas | 2e4c5fe401 | |
Ivan Mas | 83228d481d | |
Ivan Mas | 3fa74a18de | |
Ivan Mas | 45ccf8da28 | |
Ivan Mas | fa9b9cc5a3 | |
Ivan Mas | 66a08f7641 | |
Jon Elias | 923fef444c | |
Ivan Mas | a2258a005a | |
Carlos Satorres | 3fede6d586 | |
Ivan Mas | da5e395450 | |
Carlos Satorres | e1125dc46d | |
Jon Elias | 53ee0c1617 | |
Ivan Mas | 4d210b34c7 | |
Ivan Mas | f68f62543d | |
Ivan Mas | 148072b39d | |
Ivan Mas | 9e95afa190 | |
Ivan Mas | e0e72272a7 | |
Ivan Mas | ecc92792da | |
Ivan Mas | 85c3dc54fa | |
Jon Elias | ef8e206520 | |
Jon Elias | 0a89a6a6fd | |
Robert Ferrús | 7654a2e693 | |
Robert Ferrús | 9c467e67e0 | |
Ivan Mas | 2a7795d432 | |
Javier Segarra | 1a8e962382 | |
Javier Segarra | efe0aa708f | |
Ivan Mas | 70d286df80 | |
Pako Natek | e87803874c | |
Pako Natek | 73d1266bfc | |
Robert Ferrús | dd77326424 | |
Robert Ferrús | f87fa37a79 | |
Robert Ferrús | 35e72c90d3 | |
Robert Ferrús | d536690197 | |
Pako Natek | af5b4981df | |
Pako Natek | 597615facb | |
Pako Natek | 4e2a6d275a | |
Pako Natek | 0de9c3c172 | |
Jon Elias | 17b4089b51 | |
Jon Elias | 1d53f2c490 | |
Carlos Satorres | 78842cd69c | |
Carlos Satorres | 17a27060c3 | |
Javier Segarra | 295c8493a8 | |
Javier Segarra | f2be71be6c | |
Javier Segarra | b32c7f734f | |
Javier Segarra | a63ca1b3c5 | |
Ivan Mas | dfcc155ef9 | |
Ivan Mas | 821e2cbe4d | |
Carlos Andrés | ec71cb8df6 | |
Carlos Andrés | 801629c8db | |
Robert Ferrús | a6a875cb2c | |
Carlos Satorres | b383725f9f | |
Carlos Satorres | bb08ad7d1a | |
Carlos Satorres | a01c419b44 | |
Carlos Satorres | 3c16914135 | |
Carlos Satorres | b14beb83f4 | |
Robert Ferrús | 8482743baf | |
Javier Segarra | 9419eada64 | |
Alex Moreno | d75d4f82f2 | |
Alex Moreno | 837719327d | |
Jon Elias | eb29a66a80 | |
Jon Elias | dac30dcac5 | |
Alex Moreno | f4b7683609 | |
Javi Gallego | c73af0a44b | |
Alex Moreno | 7a02af9a3a | |
Alex Moreno | 7b8ddef4c2 | |
Alex Moreno | 3bf47af774 | |
Jon Elias | 167368b9ae | |
Jon Elias | e85b68650d | |
Jon Elias | 59d3bd9d44 | |
Alex Moreno | 6e824c1b5e | |
Javi Gallego | b8f9dc7ad7 | |
Javi Gallego | 8cbe64eedd | |
Javi Gallego | 1261722943 | |
Alex Moreno | 5f07c159bc | |
Alex Moreno | 9ba9338f9d | |
Alex Moreno | bbebff7ea9 | |
Javier Segarra | b003dff045 | |
Javier Segarra | 72a1c2ca57 | |
Robert Ferrús | 56982ee1ba | |
Carlos Satorres | d9d80a0e43 | |
Carlos Satorres | d659e05ce8 | |
Robert Ferrús | 5a449c66ce | |
Carlos Satorres | 06cd177d31 | |
Carlos Satorres | c4a7fbf6e8 | |
Carlos Satorres | 14c087e17f | |
Carlos Satorres | 62f26ec8c8 | |
Robert Ferrús | d10670cb37 | |
Robert Ferrús | 1f6779d86b | |
Robert Ferrús | 46a22733e2 | |
Robert Ferrús | b9206c44bb | |
Jon Elias | 034df6e8ea | |
Carlos Satorres | 10a6626a65 | |
Carlos Satorres | b47f175b67 | |
Carlos Satorres | 99b5433e62 | |
Javier Segarra | 630d867787 | |
Javier Segarra | 294c2f832e | |
Robert Ferrús | 2e247c3ea5 | |
Robert Ferrús | 3c89ea0df8 | |
Carlos Satorres | d66b8f4963 | |
Javier Segarra | dfcfd34202 | |
Robert Ferrús | 5ff27de72c | |
Robert Ferrús | a40e9a547b | |
Robert Ferrús | b4ac80615b | |
Robert Ferrús | 3d5bfb81da | |
Robert Ferrús | c727586855 | |
Javi Gallego | da8609afd6 | |
Javi Gallego | a46ec1bc8d | |
Javi Gallego | 8e21ca5293 | |
Carlos Satorres | ffeb710933 | |
Carlos Satorres | a98967bac1 | |
Javi Gallego | 4f68a7d262 | |
Carlos Satorres | 53eb1f427b | |
Carlos Satorres | 516147b8bb | |
Carlos Satorres | 024ab8602d | |
Robert Ferrús | 93c9ef6f4c | |
Carlos Satorres | 6ef0d2625d | |
Carlos Satorres | d39c063786 | |
Carlos Satorres | 24f501f47a | |
Carlos Satorres | 07b07611be | |
Carlos Satorres | 3bdb8f6228 | |
Carlos Satorres | 60c1daa47c | |
Carlos Satorres | 86dde8dfb3 | |
Javier Segarra | 96649f5d8a | |
Javier Segarra | 9bfc2a01c5 | |
Javier Segarra | f0e9cce228 | |
Robert Ferrús | da3b8ac8d0 | |
Robert Ferrús | 6fd8c5ded6 | |
Robert Ferrús | 050c338ffb | |
Carlos Satorres | 60f0b169d4 | |
Javier Segarra | f6c3893d00 | |
Javier Segarra | 420bb2a57e | |
Carlos Satorres | a4f9d62504 | |
Carlos Satorres | 358f93c454 | |
Javier Segarra | f207222b47 | |
Carlos Satorres | 978914aa71 | |
Carlos Satorres | d547456d22 | |
Carlos Satorres | 6d661dba85 | |
Carlos Satorres | c8d57a1efa | |
Carlos Satorres | 209bd21548 | |
Carlos Satorres | bd1cee6d8b | |
Carlos Satorres | a139c9849c | |
Carlos Satorres | ddecfee24b | |
Carlos Satorres | 78a8f80321 | |
Carlos Satorres | 81d3bce12a | |
Javier Segarra | a69a767c8a | |
Javier Segarra | 3691daded4 | |
Javier Segarra | ca90d6ecd7 | |
Carlos Satorres | 85163a13fa | |
Carlos Satorres | 6f16974320 | |
Carlos Satorres | 16bbcf8185 | |
Carlos Satorres | a30cad1da1 | |
Carlos Satorres | 419815ff87 | |
Carlos Satorres | afb01ed021 | |
Carlos Satorres | e2a4c5339a | |
Carlos Satorres | c1b9032534 | |
Carlos Satorres | 4bc475d132 | |
Carlos Satorres | d1aa164aea | |
Javier Segarra | f86bd1233b | |
Javier Segarra | 0a4f4c5926 | |
Javier Segarra | 22dc1e22f4 | |
Javier Segarra | aa2f9985cd | |
Javier Segarra | aab595e9dd | |
Javier Segarra | f46a46359e | |
Javier Segarra | 771e06743e | |
Javier Segarra | 50b35c3474 | |
Javier Segarra | 62243e164a | |
Carlos Satorres | 601909e853 | |
Carlos Satorres | 4b9a39e6ba | |
Carlos Satorres | 2aa0e2af2a | |
Carlos Satorres | c3c60b1fa7 | |
Carlos Satorres | ff328c9f0d | |
Carlos Satorres | a27e3ed60f | |
Carlos Satorres | 5e5a8078ca | |
Carlos Satorres | cf651dc2e1 | |
Alex Moreno | 36b4c7fb74 | |
Alex Moreno | 3362d7562f | |
Carlos Satorres | cc8af9d14a | |
Carlos Satorres | be0de3511b | |
Carlos Satorres | 0486c40454 | |
Alex Moreno | 4f7b625a4f | |
Alex Moreno | a9ad3df592 | |
Alex Moreno | e8d0ebe91d | |
Carlos Satorres | 41fabecc9b | |
Carlos Satorres | 06fe0f5cef | |
Carlos Satorres | 5d73af5392 | |
Carlos Satorres | 11d1cd8eb3 | |
Carlos Satorres | a5ffdddb53 | |
Carlos Satorres | 3e1b296b29 |
46
CHANGELOG.md
46
CHANGELOG.md
|
@ -1,3 +1,49 @@
|
|||
# Version 25.04 - 2025-01-28
|
||||
|
||||
### Added 🆕
|
||||
|
||||
- feat: refs #7202 added new field by:Jon
|
||||
- feat: refs #7343 delete sending to user by:ivanm
|
||||
- feat: refs #7569 refs#7569 sendEmailNotification by:sergiodt
|
||||
- feat: refs #7569 refs#7569 sendMail by:sergiodt
|
||||
- feat: refs #7584 changes request by:robert
|
||||
- feat: refs #7584 workerTimeControl_afterDelete by:robert
|
||||
- feat: refs #7832 implement refund ticket restrictions and add unit tests for ticket service updates by:jgallego
|
||||
- feat: refs #7882 Added coords to create a address by:guillermo
|
||||
- feat: refs #8073 change names and primary key by:ivanm
|
||||
- feat: refs #8073 new comment message by:ivanm
|
||||
- feat: refs #8073 #refs 8073 create vn.productionCountryVolume by:ivanm
|
||||
- feat: refs #8117 add worker first and last name to item type query by:jtubau
|
||||
- feat: refs #8247 added new acl for VnUser model by:Jon
|
||||
- feat: refs #8258 added uppercase validation on supplier create (origin/8258-uppercaseInputs) by:provira
|
||||
- feat: refs #8298 add priceOptimum and packagesDiscountFactor to zone and client tables by:jgallego
|
||||
- feat: refs #8298 add priceOptimum column to zoneEvent and update zone fixture data by:jgallego
|
||||
- feat: refs #8298 update price calculation logic and add packagesDiscountFactor column to client table by:jgallego
|
||||
- feat: refs #8357 Agregados triggers para manejar exclusiones de trabajadores en la tabla workerMana by:guillermo
|
||||
- feat: refs #8361 add hasToDownloadRate field to currency model and update exchange rate logic by:jgallego
|
||||
- feat: refs #8381 add initial and final temperature fields to entry model and queries by:jgallego
|
||||
|
||||
### Changed 📦
|
||||
|
||||
- refactor: order by id by:alexm
|
||||
- refactor: refs #7202 modified new invoice procedure and incoterms sql by:Jon
|
||||
- refactor: refs #7202 modified procedure to include customsAgent field when creating an invoice by:Jon
|
||||
- refactor: refs #8378 deprecate bi.f_tvc by:ivanm
|
||||
|
||||
### Fixed 🛠️
|
||||
|
||||
- feat: refs #8298 add priceOptimum column to zoneEvent and update zone fixture data by:jgallego
|
||||
- fix: prevent slow update (HEAD -> 8452-testToMaster, origin/test, origin/8452-testToMaster, test) by:alexm
|
||||
- fix: refs #7202 fixed back test by:Jon
|
||||
- fix: refs #7202 fixed sql by:Jon
|
||||
- fix: refs #7569 refs·6861 ticketOrderReserve by:sergiodt
|
||||
- fix: refs #7569 refs·6861 ticketOrderReserve (origin/7569-sendEmailOrderTicket) by:sergiodt
|
||||
- fix: refs #7569 refs#8188 add IfNotExists by:sergiodt
|
||||
- fix: refs #7832 update ticketService model test suite to correct describe block by:jgallego
|
||||
- fix: refs #8298 remove duplicate entry in English locale file by:jgallego
|
||||
- fix: refs #8361 streamline transaction handling in exchangeRateUpdate by:jgallego
|
||||
- test: refs #8448 fix e2e by:alexm
|
||||
|
||||
# Version 25.00 - 2025-01-14
|
||||
|
||||
### Added 🆕
|
||||
|
|
|
@ -1,23 +0,0 @@
|
|||
const {models} = require('vn-loopback/server/server');
|
||||
|
||||
describe('Edi ekt_scan()', () => {
|
||||
it('clasico de subasta', async() => {
|
||||
await Self.rawSql(`CALL edi.ekt_scan(?);`, [args.id], myOptions);
|
||||
});
|
||||
|
||||
it('Batchnumber largo', async() => {
|
||||
|
||||
});
|
||||
|
||||
it('Order number', async() => {
|
||||
|
||||
});
|
||||
|
||||
it('deliveryNumber incrustado', async() => {
|
||||
|
||||
});
|
||||
|
||||
it('Solo campo agj', async() => {
|
||||
|
||||
});
|
||||
});
|
|
@ -52,7 +52,7 @@
|
|||
},
|
||||
"payMethod": {
|
||||
"type": "belongsTo",
|
||||
"model": "PayMethodFk",
|
||||
"model": "PayMethod",
|
||||
"foreignKey": "payMethodFk"
|
||||
},
|
||||
"company": {
|
||||
|
@ -61,4 +61,4 @@
|
|||
"foreignKey": "companyFk"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,7 +4,7 @@ USE `util`;
|
|||
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
||||
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
||||
|
||||
INSERT INTO `version` VALUES ('vn-database','11391','43edb1f82e88dcc44eedc8501b93c1fac66d71e9','2025-01-14 07:32:09','11407');
|
||||
INSERT INTO `version` VALUES ('vn-database','11410','7a02af9a3acae14a658de1557baa44542c24d480','2025-01-28 07:44:02','11423');
|
||||
|
||||
INSERT INTO `versionLog` VALUES ('vn-database','10107','00-firstScript.sql','jenkins@10.0.2.69','2022-04-23 10:53:53',NULL,NULL);
|
||||
INSERT INTO `versionLog` VALUES ('vn-database','10112','00-firstScript.sql','jenkins@10.0.2.69','2022-05-09 09:14:53',NULL,NULL);
|
||||
|
@ -1041,6 +1041,7 @@ INSERT INTO `versionLog` VALUES ('vn-database','11261','00-firstScript.sql','jen
|
|||
INSERT INTO `versionLog` VALUES ('vn-database','11262','00-firstScript.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2024-10-03 07:47:43',NULL,NULL);
|
||||
INSERT INTO `versionLog` VALUES ('vn-database','11263','00-firstScript.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2024-09-27 12:05:32',NULL,NULL);
|
||||
INSERT INTO `versionLog` VALUES ('vn-database','11264','00-firstScript.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2024-11-12 08:00:15',NULL,NULL);
|
||||
INSERT INTO `versionLog` VALUES ('vn-database','11269','00-firstScript.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2025-01-28 07:43:58',NULL,NULL);
|
||||
INSERT INTO `versionLog` VALUES ('vn-database','11271','00-firstScript.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2024-11-12 08:00:15',NULL,NULL);
|
||||
INSERT INTO `versionLog` VALUES ('vn-database','11272','00-firstScript.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2024-11-12 08:00:15',NULL,NULL);
|
||||
INSERT INTO `versionLog` VALUES ('vn-database','11273','00-firstScript.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2024-10-03 10:50:51',NULL,NULL);
|
||||
|
@ -1140,9 +1141,24 @@ INSERT INTO `versionLog` VALUES ('vn-database','11379','00-firstScript.sql','jen
|
|||
INSERT INTO `versionLog` VALUES ('vn-database','11379','01-secScript.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2025-01-07 07:46:32',NULL,NULL);
|
||||
INSERT INTO `versionLog` VALUES ('vn-database','11384','00-firstScript.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2025-01-07 07:46:32',NULL,NULL);
|
||||
INSERT INTO `versionLog` VALUES ('vn-database','11385','00-firstScript.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2025-01-07 07:46:33',NULL,NULL);
|
||||
INSERT INTO `versionLog` VALUES ('vn-database','11387','00-firstScript.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2025-01-28 07:43:58',NULL,NULL);
|
||||
INSERT INTO `versionLog` VALUES ('vn-database','11390','00-firstScript.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2025-01-14 07:32:08',NULL,NULL);
|
||||
INSERT INTO `versionLog` VALUES ('vn-database','11391','00-itemAlter.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2025-01-14 07:32:08',NULL,NULL);
|
||||
INSERT INTO `versionLog` VALUES ('vn-database','11396','00-firstScript.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2025-01-28 07:43:58',NULL,NULL);
|
||||
INSERT INTO `versionLog` VALUES ('vn-database','11398','00-zoneEventPriceOptimum.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2025-01-28 07:43:59',NULL,NULL);
|
||||
INSERT INTO `versionLog` VALUES ('vn-database','11398','00-zonePriceOptimum.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2025-01-28 07:43:59',NULL,NULL);
|
||||
INSERT INTO `versionLog` VALUES ('vn-database','11398','01-zoneUpdate.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2025-01-28 07:43:59',NULL,NULL);
|
||||
INSERT INTO `versionLog` VALUES ('vn-database','11398','02-clientAlter.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2025-01-28 07:43:59',NULL,NULL);
|
||||
INSERT INTO `versionLog` VALUES ('vn-database','11398','03-clientConfig.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2025-01-28 07:43:59',NULL,NULL);
|
||||
INSERT INTO `versionLog` VALUES ('vn-database','11400','00-firstScript.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2025-01-09 09:55:24',NULL,NULL);
|
||||
INSERT INTO `versionLog` VALUES ('vn-database','11405','00-entryAlter.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2025-01-28 07:44:00',NULL,NULL);
|
||||
INSERT INTO `versionLog` VALUES ('vn-database','11406','00-currrencyAlter.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2025-01-28 07:44:00',NULL,NULL);
|
||||
INSERT INTO `versionLog` VALUES ('vn-database','11406','01-currrencyUpdate.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2025-01-28 07:44:00',NULL,NULL);
|
||||
INSERT INTO `versionLog` VALUES ('vn-database','11407','00-firstScript.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2025-01-28 07:44:00',NULL,NULL);
|
||||
INSERT INTO `versionLog` VALUES ('vn-database','11410','00-firstScript.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2025-01-28 07:44:00',NULL,NULL);
|
||||
INSERT INTO `versionLog` VALUES ('vn-database','11415','00-firstScript.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2025-01-20 08:12:38',NULL,NULL);
|
||||
INSERT INTO `versionLog` VALUES ('vn-database','11418','00-firstScript.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2025-01-21 11:03:27',NULL,NULL);
|
||||
INSERT INTO `versionLog` VALUES ('vn-database','11423','00-firstScript.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2025-01-23 15:19:32',NULL,NULL);
|
||||
|
||||
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
||||
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
||||
|
@ -1241,6 +1257,7 @@ INSERT INTO `role` VALUES (127,'timeControl','Tablet para fichar',1,'2024-01-09
|
|||
INSERT INTO `role` VALUES (129,'buyerAssistant','Comprador que tienes mas permisos para ayudar al buyerBoss en algunas tareas',1,'2024-02-06 06:59:12','2024-02-06 06:59:12',783);
|
||||
INSERT INTO `role` VALUES (130,'reviewer','Revisor de producción',1,'2024-06-11 00:00:00','2024-06-11 00:00:00',10578);
|
||||
INSERT INTO `role` VALUES (131,'supplier','Privilegios básicos de un proveedor',1,'2024-07-05 10:18:58','2024-07-05 10:18:58',19295);
|
||||
INSERT INTO `role` VALUES (132,'salesPersonClaim','Departamento de ventas con funciones de reclamaciones',1,'2025-01-17 07:07:40','2025-01-17 07:07:40',19295);
|
||||
|
||||
INSERT INTO `roleInherit` VALUES (1,1,2,NULL);
|
||||
INSERT INTO `roleInherit` VALUES (2,1,3,NULL);
|
||||
|
@ -1252,7 +1269,6 @@ INSERT INTO `roleInherit` VALUES (8,5,33,NULL);
|
|||
INSERT INTO `roleInherit` VALUES (10,11,6,NULL);
|
||||
INSERT INTO `roleInherit` VALUES (11,13,1,NULL);
|
||||
INSERT INTO `roleInherit` VALUES (12,15,35,NULL);
|
||||
INSERT INTO `roleInherit` VALUES (16,17,20,NULL);
|
||||
INSERT INTO `roleInherit` VALUES (17,17,37,NULL);
|
||||
INSERT INTO `roleInherit` VALUES (18,17,39,NULL);
|
||||
INSERT INTO `roleInherit` VALUES (19,17,64,NULL);
|
||||
|
@ -1327,7 +1343,6 @@ INSERT INTO `roleInherit` VALUES (105,72,18,NULL);
|
|||
INSERT INTO `roleInherit` VALUES (106,73,5,NULL);
|
||||
INSERT INTO `roleInherit` VALUES (107,73,64,NULL);
|
||||
INSERT INTO `roleInherit` VALUES (108,73,19,NULL);
|
||||
INSERT INTO `roleInherit` VALUES (109,59,50,NULL);
|
||||
INSERT INTO `roleInherit` VALUES (115,39,76,NULL);
|
||||
INSERT INTO `roleInherit` VALUES (117,65,76,NULL);
|
||||
INSERT INTO `roleInherit` VALUES (118,30,76,NULL);
|
||||
|
@ -1520,6 +1535,9 @@ INSERT INTO `roleInherit` VALUES (379,103,121,19294);
|
|||
INSERT INTO `roleInherit` VALUES (381,119,123,19295);
|
||||
INSERT INTO `roleInherit` VALUES (382,48,72,783);
|
||||
INSERT INTO `roleInherit` VALUES (383,114,111,19295);
|
||||
INSERT INTO `roleInherit` VALUES (384,132,18,19295);
|
||||
INSERT INTO `roleInherit` VALUES (385,132,72,19295);
|
||||
INSERT INTO `roleInherit` VALUES (386,109,132,19295);
|
||||
|
||||
INSERT INTO `userPassword` VALUES (1,7,1,0,2,1);
|
||||
|
||||
|
@ -2389,6 +2407,7 @@ INSERT INTO `ACL` VALUES (1012,'OsrmConfig','optimize','READ','ALLOW','ROLE','em
|
|||
INSERT INTO `ACL` VALUES (1013,'Route','optimizePriority','*','ALLOW','ROLE','employee',10578);
|
||||
INSERT INTO `ACL` VALUES (1014,'Worker','canModifyAbsenceInPast','WRITE','ALLOW','ROLE','hr',10578);
|
||||
INSERT INTO `ACL` VALUES (1015,'Worker','__get__sip','READ','ALLOW','ROLE','employee',19294);
|
||||
INSERT INTO `ACL` VALUES (1016,'VnUser','adminUser','WRITE','ALLOW','ROLE','sysadmin',10578);
|
||||
|
||||
INSERT INTO `fieldAcl` VALUES (1,'Client','name','update','employee');
|
||||
INSERT INTO `fieldAcl` VALUES (2,'Client','contact','update','employee');
|
||||
|
@ -2687,71 +2706,72 @@ INSERT INTO `continent` VALUES (3,'África','AF');
|
|||
INSERT INTO `continent` VALUES (4,'Europa','EU');
|
||||
INSERT INTO `continent` VALUES (5,'Oceanía','OC');
|
||||
|
||||
INSERT INTO `department` VALUES (1,'VN','VERDNATURA',1,130,763,0,0,0,0,26,NULL,'/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (1,'VN','VERDNATURA',1,132,763,0,0,0,0,26,NULL,'/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (22,'shopping','COMPRAS',2,5,NULL,72,0,0,1,1,1,'/1/',NULL,1,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (23,'CMA','CAMARA',15,16,NULL,72,1,1,2,0,37,'/1/37/',NULL,0,NULL,0,1,1,1,NULL,NULL,NULL,'PREVIOUS');
|
||||
INSERT INTO `department` VALUES (31,'it','INFORMATICA',6,7,NULL,72,0,0,1,0,1,'/1/','informatica-cau',1,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (34,'accounting','CONTABILIDAD',8,9,NULL,0,0,0,1,0,1,'/1/',NULL,1,NULL,1,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (35,'finance','FINANZAS',10,11,NULL,0,0,0,1,0,1,'/1/',NULL,1,'begonya@verdnatura.es',0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (36,'labor','LABORAL',12,13,NULL,0,0,0,1,0,1,'/1/',NULL,1,NULL,1,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (37,'PROD','PRODUCCION',14,37,NULL,72,1,1,1,11,1,'/1/',NULL,0,NULL,0,1,1,1,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (37,'PROD','PRODUCCION',14,39,NULL,72,1,1,1,12,1,'/1/',NULL,0,NULL,0,1,1,1,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (38,'picking','SACADO',17,18,NULL,72,1,0,2,0,37,'/1/37/',NULL,0,NULL,0,1,0,1,NULL,NULL,NULL,'ON_PREPARATION');
|
||||
INSERT INTO `department` VALUES (39,'packing','ENCAJADO',19,20,NULL,72,1,0,2,0,37,'/1/37/',NULL,0,NULL,0,0,0,1,NULL,NULL,NULL,'PACKING');
|
||||
INSERT INTO `department` VALUES (41,'administration','ADMINISTRACION',38,39,NULL,72,0,0,1,0,1,'/1/',NULL,1,NULL,1,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (43,'VT','VENTAS',40,89,NULL,0,0,0,1,24,1,'/1/',NULL,1,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (44,'management','GERENCIA',90,91,NULL,72,0,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (45,'logistic','LOGISTICA',92,93,NULL,72,0,0,1,0,1,'/1/',NULL,1,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (46,'delivery','REPARTO',94,95,NULL,72,0,0,1,0,1,'/1/',NULL,0,NULL,0,1,0,0,NULL,NULL,NULL,'DELIVERY');
|
||||
INSERT INTO `department` VALUES (48,'storage','ALMACENAJE',96,97,NULL,0,1,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,'STORAGE');
|
||||
INSERT INTO `department` VALUES (49,NULL,'PROPIEDAD',98,99,NULL,72,0,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (52,NULL,'CARGA AEREA',100,101,NULL,72,0,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (53,'marketing','MARKETING Y COMUNICACIÓN',41,42,NULL,72,0,0,2,0,43,'/1/43/',NULL,1,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (54,NULL,'ORNAMENTALES',102,103,NULL,72,0,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (41,'administration','ADMINISTRACION',40,41,NULL,72,0,0,1,0,1,'/1/',NULL,1,NULL,1,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (43,'VT','VENTAS',42,91,NULL,0,0,0,1,24,1,'/1/',NULL,1,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (44,'management','GERENCIA',92,93,NULL,72,0,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (45,'logistic','LOGISTICA',94,95,NULL,72,0,0,1,0,1,'/1/',NULL,1,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (46,'delivery','REPARTO',96,97,NULL,72,0,0,1,0,1,'/1/',NULL,0,NULL,0,1,0,0,NULL,NULL,NULL,'DELIVERY');
|
||||
INSERT INTO `department` VALUES (48,'storage','ALMACENAJE',98,99,NULL,0,1,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,'STORAGE');
|
||||
INSERT INTO `department` VALUES (49,NULL,'PROPIEDAD',100,101,NULL,72,0,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (52,NULL,'CARGA AEREA',102,103,NULL,72,0,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (53,'marketing','MARKETING Y COMUNICACIÓN',43,44,NULL,72,0,0,2,0,43,'/1/43/',NULL,1,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (54,NULL,'ORNAMENTALES',104,105,NULL,72,0,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (55,NULL,'TALLER NATURAL',21,22,14548,72,0,0,2,0,37,'/1/37/',NULL,0,NULL,0,1,1,0,1118,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (56,NULL,'TALLER ARTIFICIAL',23,24,8470,72,0,0,2,0,37,'/1/37/',NULL,0,NULL,0,1,1,0,1927,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (58,'CMP','CAMPOS',104,107,NULL,72,0,0,1,1,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,'FIELD');
|
||||
INSERT INTO `department` VALUES (59,'maintenance','MANTENIMIENTO',108,109,NULL,72,0,0,1,0,1,'/1/',NULL,0,NULL,0,1,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (60,'claims','RECLAMACIONES',43,44,NULL,72,0,0,2,0,43,'/1/43/',NULL,0,NULL,0,1,0,0,NULL,NULL,NULL,'CLAIM');
|
||||
INSERT INTO `department` VALUES (61,NULL,'VNH',110,113,NULL,73,0,0,1,1,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (66,NULL,'VERDNAMADRID',114,115,NULL,72,0,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (58,'CMP','CAMPOS',106,109,NULL,72,0,0,1,1,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,'FIELD');
|
||||
INSERT INTO `department` VALUES (59,'maintenance','MANTENIMIENTO',110,111,NULL,72,0,0,1,0,1,'/1/',NULL,0,NULL,0,1,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (60,'claims','RECLAMACIONES',45,46,NULL,72,0,0,2,0,43,'/1/43/',NULL,0,NULL,0,1,0,0,NULL,NULL,NULL,'CLAIM');
|
||||
INSERT INTO `department` VALUES (61,NULL,'VNH',112,115,NULL,73,0,0,1,1,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (66,NULL,'VERDNAMADRID',116,117,NULL,72,0,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (68,NULL,'COMPLEMENTOS',25,26,NULL,72,1,0,2,0,37,'/1/37/',NULL,0,NULL,0,1,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (69,NULL,'VERDNABARNA',116,117,NULL,74,0,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (80,'spainTeam5','EQUIPO ESPAÑA 5',45,46,4250,0,0,0,2,0,43,'/1/43/',NULL,1,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (86,NULL,'LIMPIEZA',118,119,NULL,72,0,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (89,NULL,'COORDINACION',120,121,NULL,0,1,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (90,NULL,'TRAILER',111,112,NULL,0,0,0,2,0,61,'/1/61/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (69,NULL,'VERDNABARNA',118,119,NULL,74,0,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (80,'spainTeam5','EQUIPO ESPAÑA 5',47,48,4250,0,0,0,2,0,43,'/1/43/',NULL,1,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (86,NULL,'LIMPIEZA',120,121,NULL,72,0,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (89,NULL,'COORDINACION',122,123,NULL,0,1,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (90,NULL,'TRAILER',113,114,NULL,0,0,0,2,0,61,'/1/61/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (91,'artificial','ARTIFICIAL',27,28,NULL,0,1,0,2,0,37,'/1/37/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,'PREVIOUS');
|
||||
INSERT INTO `department` VALUES (92,NULL,'EQUIPO SILVERIO',47,48,1203,0,0,0,2,0,43,'/1/43/','sdc_equipo',0,'gestioncomercial@verdnatura.es',0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (94,'spainTeam2','EQUIPO ESPAÑA 2',49,50,3797,0,0,0,2,0,43,'/1/43/',NULL,1,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (95,'spainTeam1','EQUIPO ESPAÑA 1',51,52,24065,0,0,0,2,0,43,'/1/43/',NULL,1,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (96,NULL,'EQUIPO C LOPEZ',53,54,4661,0,0,0,2,0,43,'/1/43/','cla_equipo',0,'gestioncomercial@verdnatura.es',0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (115,NULL,'EQUIPO CLAUDI',55,56,3810,0,0,0,2,0,43,'/1/43/','csr_equipo',0,'gestioncomercial@verdnatura.es',0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (123,NULL,'EQUIPO ELENA BASCUÑANA',57,58,7102,0,0,0,2,0,43,'/1/43/','ebt_equipo',0,'gestioncomercial@verdnatura.es',0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (124,NULL,'CONTROL INTERNO',122,123,NULL,72,0,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (125,'spainTeam3','EQUIPO ESPAÑA 3',59,60,1118,0,0,0,2,0,43,'/1/43/',NULL,1,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (92,NULL,'EQUIPO SILVERIO',49,50,1203,0,0,0,2,0,43,'/1/43/','sdc_equipo',0,'gestioncomercial@verdnatura.es',0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (94,'spainTeam2','EQUIPO ESPAÑA 2',51,52,3797,0,0,0,2,0,43,'/1/43/',NULL,1,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (95,'spainTeam1','EQUIPO ESPAÑA 1',53,54,24065,0,0,0,2,0,43,'/1/43/',NULL,1,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (96,NULL,'EQUIPO C LOPEZ',55,56,4661,0,0,0,2,0,43,'/1/43/','cla_equipo',0,'gestioncomercial@verdnatura.es',0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (115,NULL,'EQUIPO CLAUDI',57,58,3810,0,0,0,2,0,43,'/1/43/','csr_equipo',0,'gestioncomercial@verdnatura.es',0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (123,NULL,'EQUIPO ELENA BASCUÑANA',59,60,7102,0,0,0,2,0,43,'/1/43/','ebt_equipo',0,'gestioncomercial@verdnatura.es',0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (124,NULL,'CONTROL INTERNO',124,125,NULL,72,0,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (125,'spainTeam3','EQUIPO ESPAÑA 3',61,62,1118,0,0,0,2,0,43,'/1/43/',NULL,1,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (126,NULL,'PRESERVADO',29,30,NULL,0,0,0,2,0,37,'/1/37/',NULL,0,NULL,0,1,1,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (128,NULL,'PALETIZADO',31,32,NULL,0,1,0,2,0,37,'/1/37/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,'PALLETIZING');
|
||||
INSERT INTO `department` VALUES (130,'reviewers','REVISION',33,34,NULL,0,1,0,2,0,37,'/1/37/',NULL,0,NULL,0,0,0,1,NULL,NULL,NULL,'ON_CHECKING');
|
||||
INSERT INTO `department` VALUES (131,'greenhouse','INVERNADERO',105,106,NULL,0,0,0,2,0,58,'/1/58/',NULL,0,NULL,0,1,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (132,NULL,'EQUIPO DC',61,62,1731,0,0,0,2,0,43,'/1/43/','dc_equipo',1,'gestioncomercial@verdnatura.es',0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (133,'franceTeamManagement','EQUIPO GESTIÓN FRANCIA',63,64,9751,72,0,0,2,0,43,'/1/43/','fr_equipo',1,'gestionfrancia@verdnatura.es',0,0,0,0,NULL,NULL,'3300',NULL);
|
||||
INSERT INTO `department` VALUES (134,'portugalTeam','EQUIPO PORTUGAL',65,66,8964,0,0,0,2,0,43,'/1/43/','pt_equipo',1,'portugal@verdnatura.es',0,0,0,0,NULL,NULL,'3500',NULL);
|
||||
INSERT INTO `department` VALUES (135,'routers','ENRUTADORES',124,125,NULL,0,0,0,1,0,1,'/1/',NULL,1,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (136,'heavyVehicles','VEHICULOS PESADOS',126,127,NULL,0,0,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (137,'sorter','SORTER',128,129,NULL,0,0,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (139,'spainTeam4','EQUIPO ESPAÑA 4',67,68,3803,0,0,0,2,0,43,'/1/43/',NULL,1,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (140,'internationalTeam','EQUIPO INTERNACIONAL',69,70,24065,0,0,0,2,0,43,'/1/43/','int_equipo',1,'international@verdnatura.es',0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (131,'greenhouse','INVERNADERO',107,108,NULL,0,0,0,2,0,58,'/1/58/',NULL,0,NULL,0,1,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (132,NULL,'EQUIPO DC',63,64,1731,0,0,0,2,0,43,'/1/43/','dc_equipo',1,'gestioncomercial@verdnatura.es',0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (133,'franceTeamManagement','EQUIPO GESTIÓN FRANCIA',65,66,9751,72,0,0,2,0,43,'/1/43/','fr_equipo',1,'gestionfrancia@verdnatura.es',0,0,0,0,NULL,NULL,'3300',NULL);
|
||||
INSERT INTO `department` VALUES (134,'portugalTeam','EQUIPO PORTUGAL',67,68,8964,0,0,0,2,0,43,'/1/43/','pt_equipo',1,'portugal@verdnatura.es',0,0,0,0,NULL,NULL,'3500',NULL);
|
||||
INSERT INTO `department` VALUES (135,'routers','ENRUTADORES',126,127,NULL,0,0,0,1,0,1,'/1/',NULL,1,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (136,'heavyVehicles','VEHICULOS PESADOS',128,129,NULL,0,0,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (137,'sorter','SORTER',130,131,NULL,0,0,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (139,'spainTeam4','EQUIPO ESPAÑA 4',69,70,3803,0,0,0,2,0,43,'/1/43/',NULL,1,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (140,'internationalTeam','EQUIPO INTERNACIONAL',71,72,24065,0,0,0,2,0,43,'/1/43/','int_equipo',1,'international@verdnatura.es',0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (141,NULL,'PREVIA',35,36,NULL,0,1,0,2,0,37,'/1/37/',NULL,0,NULL,0,0,0,1,NULL,NULL,NULL,'PREVIOUS');
|
||||
INSERT INTO `department` VALUES (146,NULL,'VERDNACOLOMBIA',3,4,NULL,72,0,0,2,0,22,'/1/22/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
INSERT INTO `department` VALUES (147,'spainTeamAsia','EQUIPO ESPAÑA ASIA',71,72,40214,0,0,0,2,0,43,'/1/43/','esA_equipo',1,'esA@verdnatura.es',0,0,0,0,NULL,NULL,'5500',NULL);
|
||||
INSERT INTO `department` VALUES (148,'franceTeamCatchment','EQUIPO CAPTACIÓN FRANCIA',73,74,25178,0,0,0,2,0,43,'/1/43/',NULL,1,NULL,0,0,0,0,NULL,NULL,'6000',NULL);
|
||||
INSERT INTO `department` VALUES (149,'spainTeamCatchment','EQUIPO ESPAÑA CAPTACIÓN',75,76,1203,0,0,0,2,0,43,'/1/43/','es_captacion_equipo',1,'es_captacion@verdnatura.es',0,0,0,0,NULL,NULL,'5700',NULL);
|
||||
INSERT INTO `department` VALUES (150,'spainTeamLevanteIslands','EQUIPO ESPAÑA LEVANTE',77,78,1118,0,0,0,2,0,43,'/1/43/','es_levante_equipo',1,'es_levante@verdnatura.es',0,0,0,0,NULL,NULL,'5000',NULL);
|
||||
INSERT INTO `department` VALUES (151,'spainTeamNorthwest','EQUIPO ESPAÑA NOROESTE',79,80,7102,0,0,0,2,0,43,'/1/43/','es_noroeste_equipo',1,'es_noroeste@verdnatura.es',0,0,0,0,NULL,NULL,'5300',NULL);
|
||||
INSERT INTO `department` VALUES (152,'spainTeamNortheast','EQUIPO ESPAÑA NORESTE',81,82,1118,0,0,0,2,0,43,'/1/43/','es_noreste_equipo',1,'es_noreste@verdnatura.es',0,0,0,0,NULL,NULL,'5200',NULL);
|
||||
INSERT INTO `department` VALUES (153,'spainTeamSouth','EQUIPO ESPAÑA SUR',83,84,36578,0,0,0,2,0,43,'/1/43/','es_sur_equipo',1,'es_sur@verdnatura.es',0,0,0,0,NULL,NULL,'5400',NULL);
|
||||
INSERT INTO `department` VALUES (154,'spainTeamCenter','EQUIPO ESPAÑA CENTRO',85,86,4661,0,0,0,2,0,43,'/1/43/','es_centro_equipo',1,'es_centro@verdnatura.es',0,0,0,0,NULL,NULL,'5100',NULL);
|
||||
INSERT INTO `department` VALUES (155,'spainTeamVip','EQUIPO ESPAÑA VIP',87,88,5432,0,0,0,2,0,43,'/1/43/','es_vip_equipo',1,'es_vip@verdnatura.es',0,0,0,0,NULL,NULL,'5600',NULL);
|
||||
INSERT INTO `department` VALUES (147,'spainTeamAsia','EQUIPO ESPAÑA ASIA',73,74,40214,0,0,0,2,0,43,'/1/43/','esA_equipo',1,'esA@verdnatura.es',0,0,0,0,NULL,NULL,'5500',NULL);
|
||||
INSERT INTO `department` VALUES (148,'franceTeamCatchment','EQUIPO CAPTACIÓN FRANCIA',75,76,25178,0,0,0,2,0,43,'/1/43/',NULL,1,NULL,0,0,0,0,NULL,NULL,'6000',NULL);
|
||||
INSERT INTO `department` VALUES (149,'spainTeamCatchment','EQUIPO ESPAÑA CAPTACIÓN',77,78,1203,0,0,0,2,0,43,'/1/43/','es_captacion_equipo',1,'es_captacion@verdnatura.es',0,0,0,0,NULL,NULL,'5700',NULL);
|
||||
INSERT INTO `department` VALUES (150,'spainTeamLevanteIslands','EQUIPO ESPAÑA LEVANTE',79,80,1118,0,0,0,2,0,43,'/1/43/','es_levante_equipo',1,'es_levante@verdnatura.es',0,0,0,0,NULL,NULL,'5000',NULL);
|
||||
INSERT INTO `department` VALUES (151,'spainTeamNorthwest','EQUIPO ESPAÑA NOROESTE',81,82,7102,0,0,0,2,0,43,'/1/43/','es_noroeste_equipo',1,'es_noroeste@verdnatura.es',0,0,0,0,NULL,NULL,'5300',NULL);
|
||||
INSERT INTO `department` VALUES (152,'spainTeamNortheast','EQUIPO ESPAÑA NORESTE',83,84,1118,0,0,0,2,0,43,'/1/43/','es_noreste_equipo',1,'es_noreste@verdnatura.es',0,0,0,0,NULL,NULL,'5200',NULL);
|
||||
INSERT INTO `department` VALUES (153,'spainTeamSouth','EQUIPO ESPAÑA SUR',85,86,36578,0,0,0,2,0,43,'/1/43/','es_sur_equipo',1,'es_sur@verdnatura.es',0,0,0,0,NULL,NULL,'5400',NULL);
|
||||
INSERT INTO `department` VALUES (154,'spainTeamCenter','EQUIPO ESPAÑA CENTRO',87,88,4661,0,0,0,2,0,43,'/1/43/','es_centro_equipo',1,'es_centro@verdnatura.es',0,0,0,0,NULL,NULL,'5100',NULL);
|
||||
INSERT INTO `department` VALUES (155,'spainTeamVip','EQUIPO ESPAÑA VIP',89,90,5432,0,0,0,2,0,43,'/1/43/','es_vip_equipo',1,'es_vip@verdnatura.es',0,0,0,0,NULL,NULL,'5600',NULL);
|
||||
INSERT INTO `department` VALUES (156,NULL,'COCINA',37,38,NULL,0,0,0,2,0,37,'/1/37/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
|
||||
|
||||
INSERT INTO `docuware` VALUES (1,'deliveryNote','Albaranes cliente','find','find','N__ALBAR_N',NULL);
|
||||
INSERT INTO `docuware` VALUES (2,'deliveryNote','Albaranes cliente','store','Archivar','N__ALBAR_N',NULL);
|
||||
|
|
|
@ -602,7 +602,7 @@ INSERT IGNORE INTO `tables_priv` VALUES ('','vn','administrative','projectState'
|
|||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','employee','entrySplit__','alexm@%','0000-00-00 00:00:00','Select,Insert,Update,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','employee','entryType','alexm@%','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','administrative','projectNotes','alexm@%','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','administrative','project','juan@10.5.1.1','0000-00-00 00:00:00','Select,Update','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','administrative','project','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select,Insert,Update','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','employee','productionConfig','alexm@%','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','manager','productionConfig','alexm@%','0000-00-00 00:00:00','Update','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','creditInsurance','juan@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
|
@ -1498,6 +1498,13 @@ INSERT IGNORE INTO `tables_priv` VALUES ('','vn','employee','zoneGeo','guillermo
|
|||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','buyer','itemCampaign','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','itemCampaign','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','buyer','campaign','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','awb','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','awbComponent','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','awbComponentType','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','logisticAssist','itemSoldOutTag','jenkins@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select,Insert,Update,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','logisticAssist','itemDurationTag','jenkins@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select,Insert,Update,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','logisticAssist','itemGrowingTag','jenkins@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select,Insert,Update,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','adminBoss','receipt','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Update,Delete','');
|
||||
/*!40000 ALTER TABLE `tables_priv` ENABLE KEYS */;
|
||||
|
||||
/*!40000 ALTER TABLE `columns_priv` DISABLE KEYS */;
|
||||
|
@ -2142,6 +2149,7 @@ INSERT IGNORE INTO `procs_priv` VALUES ('','srt','delivery','buffer_settypebynam
|
|||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','delivery','expedition_getstate','PROCEDURE','guillermo@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','srt','delivery','expedition_scan','PROCEDURE','guillermo@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','delivery','itemshelving_get','PROCEDURE','guillermo@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','financial','remittance_calc','PROCEDURE','jgallego@db-proxy2.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','delivery','itemshelving_add','PROCEDURE','guillermo@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','delivery','itemshelving_getsaledate','PROCEDURE','guillermo@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','delivery','itemshelving_filterbuyer','PROCEDURE','guillermo@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
|
@ -2204,7 +2212,6 @@ INSERT IGNORE INTO `procs_priv` VALUES ('','vn','claimManager','entry_getTransfe
|
|||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','buyer','entry_getTransfer','PROCEDURE','jenkins@db-proxy1.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','administrative','intrastat_estimateNet','FUNCTION','jenkins@db-proxy1.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','artificialBoss','confection_controlSource','PROCEDURE','jenkins@db-proxy1.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','financial','remittance_calc','PROCEDURE','alexm@db-proxy1.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','util','developer','connection_kill','PROCEDURE','jenkins@db-proxy1.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','financial','client_getRisk','PROCEDURE','jenkins@db-proxy1.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','account','developer','user_hasRole','FUNCTION','root@localhost','Execute','0000-00-00 00:00:00');
|
||||
|
@ -2312,6 +2319,7 @@ INSERT IGNORE INTO `global_priv` VALUES ('','root','{\"access\": 549755781119, \
|
|||
INSERT IGNORE INTO `global_priv` VALUES ('','salesAssistant','{\"access\":0,\"version_id\":101106,\"is_role\":true}');
|
||||
INSERT IGNORE INTO `global_priv` VALUES ('','salesBoss','{\"access\":0,\"version_id\":101106,\"is_role\":true}');
|
||||
INSERT IGNORE INTO `global_priv` VALUES ('','salesPerson','{\"access\": 0, \"is_role\": true,\"version_id\":101106}');
|
||||
INSERT IGNORE INTO `global_priv` VALUES ('','salesPersonClaim','{\"access\":0,\"version_id\":101106,\"is_role\":true}');
|
||||
INSERT IGNORE INTO `global_priv` VALUES ('','salesTeamBoss','{\"access\":0,\"version_id\":100707,\"is_role\":true}');
|
||||
INSERT IGNORE INTO `global_priv` VALUES ('','salix','{\"access\":33555456,\"version_id\":100707,\"is_role\":true}');
|
||||
INSERT IGNORE INTO `global_priv` VALUES ('','sysadmin','{\"access\": 201326592, \"is_role\": true, \"version_id\": 100707}');
|
||||
|
|
|
@ -2543,17 +2543,17 @@ CREATE TABLE `defaulting` (
|
|||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Table structure for table `f_tvc`
|
||||
-- Table structure for table `f_tvc__`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `f_tvc`;
|
||||
DROP TABLE IF EXISTS `f_tvc__`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `f_tvc` (
|
||||
CREATE TABLE `f_tvc__` (
|
||||
`Id_Ticket` int(11) NOT NULL,
|
||||
PRIMARY KEY (`Id_Ticket`),
|
||||
CONSTRAINT `id_ticket_to_comisionantes` FOREIGN KEY (`Id_Ticket`) REFERENCES `vn`.`ticket` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='Almacenamos la lista de tickets para agilizar la consulta. Corresponde a los clientes REAL y en los almacenes COMISIONANTES';
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='@deprecated 2025-01-15';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
|
@ -25878,7 +25878,7 @@ CREATE TABLE `address` (
|
|||
`isActive` tinyint(4) NOT NULL DEFAULT 1,
|
||||
`longitude` decimal(11,7) DEFAULT NULL COMMENT 'Indica la última longitud proporcionada por tabla delivery',
|
||||
`latitude` decimal(11,7) DEFAULT NULL COMMENT 'Indica la última latitud proporcionada por tabla delivery',
|
||||
`isEqualizated` tinyint(1) NOT NULL DEFAULT 0,
|
||||
`isEqualizated` tinyint(1) DEFAULT NULL,
|
||||
`customsAgentFk` int(11) DEFAULT NULL,
|
||||
`incotermsFk` varchar(3) DEFAULT NULL,
|
||||
`isLogifloraAllowed` tinyint(4) NOT NULL DEFAULT 0,
|
||||
|
@ -27725,6 +27725,7 @@ CREATE TABLE `client` (
|
|||
`hasDailyInvoice` tinyint(1) NOT NULL DEFAULT 0 COMMENT 'Indica si el cliente requiere facturación diaria por defecto se copiará lo que tenga country.hasDailyInvoice',
|
||||
`geoFk` int(11) DEFAULT NULL,
|
||||
`editorFk` int(10) unsigned DEFAULT NULL,
|
||||
`packagesDiscountFactor` decimal(4,3) NOT NULL DEFAULT 1.000 COMMENT 'Porcentaje de ajuste entre el numero de bultos medio del cliente, y el número medio óptimo para las zonas en las que compra',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `IF` (`fi`),
|
||||
KEY `Id_Trabajador` (`salesPersonFk`),
|
||||
|
@ -27804,6 +27805,8 @@ CREATE TABLE `clientConfig` (
|
|||
`defaultHasCoreVnl` tinyint(1) DEFAULT NULL,
|
||||
`defaultMandateTypeFk` smallint(5) DEFAULT NULL,
|
||||
`monthsToDisableUser` int(10) unsigned DEFAULT NULL,
|
||||
`packagesOptimum` int(10) unsigned NOT NULL DEFAULT 20 COMMENT 'Numero de bultos por cliente/dia para conseguir el precio optimo',
|
||||
`monthsToCalcOptimumPrice` tinyint(3) unsigned NOT NULL DEFAULT 3 COMMENT 'Número de meses a usar para el cálculo de client.packagesDiscountFactor',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `clientNewConfigPayMethod_FK` (`defaultPayMethodFk`),
|
||||
KEY `clientNewConfigMandateType_FK` (`defaultMandateTypeFk`),
|
||||
|
@ -29061,6 +29064,7 @@ CREATE TABLE `currency` (
|
|||
`code` varchar(3) NOT NULL,
|
||||
`name` varchar(45) DEFAULT NULL,
|
||||
`ratio` double NOT NULL DEFAULT 1,
|
||||
`hasToDownloadRate` tinyint(1) NOT NULL DEFAULT 0 COMMENT 'Si se guarda el tipo de cambio diariamente en referenceRate',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `Moneda_UNIQUE` (`code`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci;
|
||||
|
@ -29972,6 +29976,8 @@ CREATE TABLE `entry` (
|
|||
`editorFk` int(10) unsigned DEFAULT NULL,
|
||||
`lockerUserFk` int(10) unsigned DEFAULT NULL,
|
||||
`locked` datetime DEFAULT current_timestamp(),
|
||||
`initialTemperature` decimal(10,2) DEFAULT NULL COMMENT 'Temperatura de como lo recibimos del proveedor ej. en colombia',
|
||||
`finalTemperature` decimal(10,2) DEFAULT NULL COMMENT 'Temperatura final de como llega a nuestras instalaciones',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `Id_Proveedor` (`supplierFk`),
|
||||
KEY `Fecha` (`dated`),
|
||||
|
@ -31774,6 +31780,8 @@ CREATE TABLE `invoiceOut` (
|
|||
`cplusTaxBreakFk` int(10) unsigned NOT NULL DEFAULT 1,
|
||||
`cplusSubjectOpFk` int(10) unsigned NOT NULL DEFAULT 1,
|
||||
`siiTrascendencyInvoiceOutFk` int(10) unsigned NOT NULL DEFAULT 1,
|
||||
`customsAgentFk` int(11) DEFAULT NULL,
|
||||
`incotermsFk` varchar(3) DEFAULT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `invoiceOut_unique` (`ref`),
|
||||
KEY `Id_Banco` (`bankFk`),
|
||||
|
@ -31786,9 +31794,13 @@ CREATE TABLE `invoiceOut` (
|
|||
KEY `Facturas_ibfk_5_idx` (`siiTrascendencyInvoiceOutFk`),
|
||||
KEY `Facturas_idx_Vencimiento` (`dued`),
|
||||
KEY `invoiceOut_serial` (`serial`),
|
||||
KEY `invoiceOut_customsAgentFk` (`customsAgentFk`),
|
||||
KEY `invoiceOut_incotermsFk` (`incotermsFk`),
|
||||
CONSTRAINT `invoiceOut_customsAgentFk` FOREIGN KEY (`customsAgentFk`) REFERENCES `customsAgent` (`id`) ON UPDATE CASCADE,
|
||||
CONSTRAINT `invoiceOut_ibfk_2` FOREIGN KEY (`siiTypeInvoiceOutFk`) REFERENCES `siiTypeInvoiceOut` (`id`) ON UPDATE CASCADE,
|
||||
CONSTRAINT `invoiceOut_ibfk_3` FOREIGN KEY (`cplusSubjectOpFk`) REFERENCES `cplusSubjectOp` (`id`) ON UPDATE CASCADE,
|
||||
CONSTRAINT `invoiceOut_ibfk_4` FOREIGN KEY (`cplusTaxBreakFk`) REFERENCES `cplusTaxBreak` (`id`) ON UPDATE CASCADE,
|
||||
CONSTRAINT `invoiceOut_incotermsFk` FOREIGN KEY (`incotermsFk`) REFERENCES `incoterms` (`code`) ON UPDATE CASCADE,
|
||||
CONSTRAINT `invoiceOut_serial` FOREIGN KEY (`serial`) REFERENCES `invoiceOutSerial` (`code`),
|
||||
CONSTRAINT `invoice_bank_id` FOREIGN KEY (`bankFk`) REFERENCES `accounting` (`id`) ON UPDATE CASCADE,
|
||||
CONSTRAINT `invoice_customer_id` FOREIGN KEY (`clientFk`) REFERENCES `client` (`id`) ON UPDATE CASCADE
|
||||
|
@ -32259,6 +32271,21 @@ CREATE TABLE `itemCost` (
|
|||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='Almacena los valores de rotacion en los ultimos 365 dias';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Table structure for table `itemDurationTag`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `itemDurationTag`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `itemDurationTag` (
|
||||
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`name` varchar(50) NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `name_UNIQUE` (`name`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Temporary table structure for view `itemEntryIn`
|
||||
--
|
||||
|
@ -32323,6 +32350,21 @@ CREATE TABLE `itemFarmingTag` (
|
|||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Table structure for table `itemGrowingTag`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `itemGrowingTag`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `itemGrowingTag` (
|
||||
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`name` varchar(50) NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `name_UNIQUE` (`name`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Table structure for table `itemImageQueue`
|
||||
--
|
||||
|
@ -32871,6 +32913,21 @@ SET character_set_client = utf8;
|
|||
1 AS `removed` */;
|
||||
SET character_set_client = @saved_cs_client;
|
||||
|
||||
--
|
||||
-- Table structure for table `itemSoldOutTag`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `itemSoldOutTag`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `itemSoldOutTag` (
|
||||
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`name` varchar(50) NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `name_UNIQUE` (`name`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Table structure for table `itemStateTag`
|
||||
--
|
||||
|
@ -35460,6 +35517,21 @@ CREATE TABLE `productionConfigLog` (
|
|||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Table structure for table `productionCountry`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `productionCountry`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `productionCountry` (
|
||||
`countryFk` mediumint(8) unsigned NOT NULL,
|
||||
`volumeGrowthEstimatePercent` decimal(6,2) DEFAULT NULL COMMENT 'Porcentaje estimado de crecimiento del volumen',
|
||||
PRIMARY KEY (`countryFk`),
|
||||
CONSTRAINT `productionCountryVolume_countryFK` FOREIGN KEY (`countryFk`) REFERENCES `country` (`id`) ON UPDATE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='Datos de producción por país';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Table structure for table `productionError`
|
||||
--
|
||||
|
@ -37992,7 +38064,7 @@ CREATE TABLE `supplier` (
|
|||
`payDay` tinyint(4) unsigned DEFAULT NULL,
|
||||
`payDemFk` tinyint(3) unsigned NOT NULL DEFAULT 7,
|
||||
`created` timestamp NOT NULL DEFAULT current_timestamp(),
|
||||
`isReal` tinyint(1) unsigned NOT NULL DEFAULT 0,
|
||||
`isReal` tinyint(1) unsigned NOT NULL DEFAULT 1,
|
||||
`note` text CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci DEFAULT NULL,
|
||||
`postcodeFk` int(11) unsigned DEFAULT NULL,
|
||||
`postCode` char(8) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci DEFAULT NULL,
|
||||
|
@ -38585,6 +38657,7 @@ CREATE TABLE `ticket` (
|
|||
KEY `tickets_zone_fk_idx` (`zoneFk`),
|
||||
KEY `ticket_fk_editor` (`editorFk`),
|
||||
KEY `ticket_cmrFk` (`cmrFk`),
|
||||
KEY `ticket_landed_IDX` (`landed`) USING BTREE,
|
||||
CONSTRAINT `ticketCompany_Fk` FOREIGN KEY (`companyFk`) REFERENCES `company` (`id`) ON UPDATE CASCADE,
|
||||
CONSTRAINT `ticket_cmrFk` FOREIGN KEY (`cmrFk`) REFERENCES `cmr` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
CONSTRAINT `ticket_customer_id` FOREIGN KEY (`clientFk`) REFERENCES `client` (`id`) ON UPDATE CASCADE,
|
||||
|
@ -41261,6 +41334,7 @@ CREATE TABLE `zone` (
|
|||
`agencyModeFk` int(11) NOT NULL,
|
||||
`travelingDays` int(11) NOT NULL DEFAULT 1,
|
||||
`price` decimal(10,2) DEFAULT NULL,
|
||||
`priceOptimum` decimal(10,2) NOT NULL COMMENT 'Precio mínimo que puede pagar un bulto',
|
||||
`bonus` double NOT NULL DEFAULT 0,
|
||||
`isVolumetric` tinyint(1) NOT NULL DEFAULT 0,
|
||||
`inflation` decimal(5,2) NOT NULL DEFAULT 1.00,
|
||||
|
@ -41277,7 +41351,8 @@ CREATE TABLE `zone` (
|
|||
KEY `zone_address_FK` (`addressFk`),
|
||||
CONSTRAINT `fk_zone_2` FOREIGN KEY (`agencyModeFk`) REFERENCES `agencyMode` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
|
||||
CONSTRAINT `zone_address_FK` FOREIGN KEY (`addressFk`) REFERENCES `address` (`id`) ON UPDATE CASCADE,
|
||||
CONSTRAINT `zone_fk_editor` FOREIGN KEY (`editorFk`) REFERENCES `account`.`user` (`id`)
|
||||
CONSTRAINT `zone_fk_editor` FOREIGN KEY (`editorFk`) REFERENCES `account`.`user` (`id`),
|
||||
CONSTRAINT `ck_zone_priceOptimum` CHECK (`priceOptimum` <= `price`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
|
@ -41370,6 +41445,7 @@ CREATE TABLE `zoneEvent` (
|
|||
`hour` datetime DEFAULT NULL,
|
||||
`travelingDays` int(11) DEFAULT NULL,
|
||||
`price` decimal(10,2) DEFAULT NULL,
|
||||
`priceOptimum` decimal(10,2) DEFAULT NULL COMMENT 'Precio mínimo que puede pagar un bulto',
|
||||
`bonus` decimal(10,2) DEFAULT NULL,
|
||||
`m3Max` decimal(10,2) unsigned DEFAULT NULL,
|
||||
`editorFk` int(10) unsigned DEFAULT NULL,
|
||||
|
@ -41377,7 +41453,8 @@ CREATE TABLE `zoneEvent` (
|
|||
UNIQUE KEY `zoneFk` (`zoneFk`,`type`,`dated`),
|
||||
KEY `zoneEvent_fk_editor` (`editorFk`),
|
||||
CONSTRAINT `zoneEvent_fk_editor` FOREIGN KEY (`editorFk`) REFERENCES `account`.`user` (`id`),
|
||||
CONSTRAINT `zoneEvent_ibfk_1` FOREIGN KEY (`zoneFk`) REFERENCES `zone` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
|
||||
CONSTRAINT `zoneEvent_ibfk_1` FOREIGN KEY (`zoneFk`) REFERENCES `zone` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
CONSTRAINT `ck_zoneEvent_priceOptimum` CHECK (`priceOptimum` <= `price`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
|
@ -41611,6 +41688,24 @@ END */ ;;
|
|||
/*!50003 SET character_set_client = @saved_cs_client */ ;;
|
||||
/*!50003 SET character_set_results = @saved_cs_results */ ;;
|
||||
/*!50003 SET collation_connection = @saved_col_connection */ ;;
|
||||
/*!50106 DROP EVENT IF EXISTS `client_setPackagesDiscountFactor` */;;
|
||||
DELIMITER ;;
|
||||
/*!50003 SET @saved_cs_client = @@character_set_client */ ;;
|
||||
/*!50003 SET @saved_cs_results = @@character_set_results */ ;;
|
||||
/*!50003 SET @saved_col_connection = @@collation_connection */ ;;
|
||||
/*!50003 SET character_set_client = utf8mb4 */ ;;
|
||||
/*!50003 SET character_set_results = utf8mb4 */ ;;
|
||||
/*!50003 SET collation_connection = utf8mb4_unicode_ci */ ;;
|
||||
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;;
|
||||
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;;
|
||||
/*!50003 SET @saved_time_zone = @@time_zone */ ;;
|
||||
/*!50003 SET time_zone = 'SYSTEM' */ ;;
|
||||
/*!50106 CREATE*/ /*!50117 DEFINER=`vn`@`localhost`*/ /*!50106 EVENT `client_setPackagesDiscountFactor` ON SCHEDULE EVERY 1 DAY STARTS '2024-10-18 03:00:00' ON COMPLETION PRESERVE ENABLE DO CALL client_setPackagesDiscountFactor() */ ;;
|
||||
/*!50003 SET time_zone = @saved_time_zone */ ;;
|
||||
/*!50003 SET sql_mode = @saved_sql_mode */ ;;
|
||||
/*!50003 SET character_set_client = @saved_cs_client */ ;;
|
||||
/*!50003 SET character_set_results = @saved_cs_results */ ;;
|
||||
/*!50003 SET collation_connection = @saved_col_connection */ ;;
|
||||
/*!50106 DROP EVENT IF EXISTS `client_unassignSalesPerson` */;;
|
||||
DELIMITER ;;
|
||||
/*!50003 SET @saved_cs_client = @@character_set_client */ ;;
|
||||
|
@ -49234,7 +49329,19 @@ BEGIN
|
|||
SELECT tcc.warehouseFK,
|
||||
tcc.itemFk,
|
||||
c2.id,
|
||||
z.inflation * ROUND(ic.cm3delivery * (IFNULL(zo.price,5000) - IFNULL(zo.bonus,0)) / (1000 * vc.standardFlowerBox) , 4) cost
|
||||
z.inflation
|
||||
* ROUND(
|
||||
ic.cm3delivery
|
||||
* (
|
||||
(
|
||||
zo.priceOptimum + (( zo.price - zo.priceOptimum) * 2 * ( 1 - c.packagesDiscountFactor))
|
||||
)
|
||||
- IFNULL(zo.bonus, 0)
|
||||
)
|
||||
/ (1000 * vc.standardFlowerBox),
|
||||
4
|
||||
) cost
|
||||
|
||||
FROM tmp.ticketComponentCalculate tcc
|
||||
JOIN item i ON i.id = tcc.itemFk
|
||||
JOIN tmp.zoneOption zo ON zo.zoneFk = vZoneFk
|
||||
|
@ -49242,6 +49349,7 @@ BEGIN
|
|||
JOIN agencyMode am ON am.id = z.agencyModeFk
|
||||
JOIN vn.volumeConfig vc
|
||||
JOIN vn.component c2 ON c2.code = 'delivery'
|
||||
JOIN `client` c on c.id = vClientFk
|
||||
LEFT JOIN itemCost ic ON ic.warehouseFk = tcc.warehouseFk
|
||||
AND ic.itemFk = tcc.itemFk
|
||||
HAVING cost <> 0;
|
||||
|
@ -50944,6 +51052,41 @@ BEGIN
|
|||
ORDER BY clientFk;
|
||||
|
||||
|
||||
END ;;
|
||||
DELIMITER ;
|
||||
/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
||||
/*!50003 SET character_set_client = @saved_cs_client */ ;
|
||||
/*!50003 SET character_set_results = @saved_cs_results */ ;
|
||||
/*!50003 SET collation_connection = @saved_col_connection */ ;
|
||||
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
||||
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
|
||||
/*!50003 DROP PROCEDURE IF EXISTS `client_setPackagesDiscountFactor` */;
|
||||
/*!50003 SET @saved_cs_client = @@character_set_client */ ;
|
||||
/*!50003 SET @saved_cs_results = @@character_set_results */ ;
|
||||
/*!50003 SET @saved_col_connection = @@collation_connection */ ;
|
||||
/*!50003 SET character_set_client = utf8mb4 */ ;
|
||||
/*!50003 SET character_set_results = utf8mb4 */ ;
|
||||
/*!50003 SET collation_connection = utf8mb4_unicode_ci */ ;
|
||||
DELIMITER ;;
|
||||
CREATE DEFINER=`vn`@`localhost` PROCEDURE `client_setPackagesDiscountFactor`()
|
||||
BEGIN
|
||||
/**
|
||||
* Set the discount factor for the packages of the clients.
|
||||
*/
|
||||
UPDATE client c
|
||||
JOIN (
|
||||
SELECT t.clientFk,
|
||||
LEAST((
|
||||
SUM(t.packages) / COUNT(DISTINCT DATE(t.shipped))
|
||||
) / cc.packagesOptimum, 1) discountFactor
|
||||
FROM ticket t
|
||||
JOIN clientConfig cc ON TRUE
|
||||
WHERE t.shipped > util.VN_CURDATE() - INTERVAL cc.monthsToCalcOptimumPrice MONTH
|
||||
AND t.packages
|
||||
GROUP BY t.clientFk
|
||||
) ca ON c.id = ca.clientFk
|
||||
SET c.packagesDiscountFactor = ca.discountFactor;
|
||||
|
||||
END ;;
|
||||
DELIMITER ;
|
||||
/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
||||
|
@ -58737,6 +58880,7 @@ BEGIN
|
|||
DECLARE vMaxShipped DATE;
|
||||
DECLARE vDone BOOL;
|
||||
DECLARE vTicketFk INT;
|
||||
DECLARE vAddressFk INT;
|
||||
DECLARE vCursor CURSOR FOR
|
||||
SELECT id
|
||||
FROM tmp.ticketToInvoice;
|
||||
|
@ -58751,11 +58895,13 @@ BEGIN
|
|||
DATE(vInvoiceDate) >= invoiceOut_getMaxIssued(
|
||||
vSerial,
|
||||
t.companyFk,
|
||||
YEAR(vInvoiceDate))
|
||||
YEAR(vInvoiceDate)),
|
||||
t.addressFk
|
||||
INTO vClientFk,
|
||||
vCompanyFk,
|
||||
vMaxShipped,
|
||||
vIsCorrectInvoiceDate
|
||||
vIsCorrectInvoiceDate,
|
||||
vAddressFk
|
||||
FROM tmp.ticketToInvoice tt
|
||||
JOIN ticket t ON t.id = tt.id;
|
||||
|
||||
|
@ -58808,7 +58954,9 @@ BEGIN
|
|||
clientFk,
|
||||
dued,
|
||||
companyFk,
|
||||
siiTypeInvoiceOutFk
|
||||
siiTypeInvoiceOutFk,
|
||||
customsAgentFk,
|
||||
incotermsFk
|
||||
)
|
||||
SELECT
|
||||
1,
|
||||
|
@ -58821,9 +58969,12 @@ BEGIN
|
|||
vCplusCorrectingInvoiceTypeFk,
|
||||
IF(vSerial = vSimplifiedSerial,
|
||||
vCplusSimplifiedInvoiceTypeFk,
|
||||
vCplusStandardInvoiceTypeFk))
|
||||
FROM client
|
||||
WHERE id = vClientFk;
|
||||
vCplusStandardInvoiceTypeFk)),
|
||||
a.customsAgentFk,
|
||||
a.incotermsFk
|
||||
FROM client c
|
||||
JOIN address a ON a.id = vAddressFk
|
||||
WHERE c.id = vClientFk;
|
||||
|
||||
SET vNewInvoiceId = LAST_INSERT_ID();
|
||||
|
||||
|
@ -67491,14 +67642,14 @@ DELIMITER ;
|
|||
/*!50003 SET character_set_results = @saved_cs_results */ ;
|
||||
/*!50003 SET collation_connection = @saved_col_connection */ ;
|
||||
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
||||
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
|
||||
/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
|
||||
/*!50003 DROP PROCEDURE IF EXISTS `remittance_calc` */;
|
||||
/*!50003 SET @saved_cs_client = @@character_set_client */ ;
|
||||
/*!50003 SET @saved_cs_results = @@character_set_results */ ;
|
||||
/*!50003 SET @saved_col_connection = @@collation_connection */ ;
|
||||
/*!50003 SET character_set_client = utf8mb4 */ ;
|
||||
/*!50003 SET character_set_results = utf8mb4 */ ;
|
||||
/*!50003 SET collation_connection = utf8mb4_unicode_ci */ ;
|
||||
/*!50003 SET collation_connection = utf8mb4_general_ci */ ;
|
||||
DELIMITER ;;
|
||||
CREATE DEFINER=`vn`@`localhost` PROCEDURE `remittance_calc`(
|
||||
vDated DATE
|
||||
|
@ -67562,7 +67713,7 @@ BEGIN
|
|||
|
||||
) risk ON risk.clientFk = c.id
|
||||
GROUP BY risk.companyFk, c.id
|
||||
HAVING receipt > 10
|
||||
HAVING receipt > 1
|
||||
) sub ON sub.id = c.id
|
||||
JOIN supplier s ON s.id = sub.companyFk
|
||||
JOIN company co ON co.id = sub.companyFk
|
||||
|
@ -74504,9 +74655,6 @@ BEGIN
|
|||
IFNULL(sat.supplierFk, su.id) supplierFk,
|
||||
t.landed
|
||||
FROM ticket t
|
||||
JOIN ticketState ts ON ts.ticketFk = t.id
|
||||
JOIN `state` s ON s.id = ts.stateFk
|
||||
JOIN alertLevel al ON al.id = s.alertLevel
|
||||
JOIN client c ON c.id = t.clientFk
|
||||
JOIN `address` a ON a.id = t.addressFk
|
||||
JOIN province p ON p.id = a.provinceFk
|
||||
|
@ -74523,8 +74671,7 @@ BEGIN
|
|||
LEFT JOIN agency ag ON ag.id = am.agencyFk
|
||||
LEFT JOIN supplierAgencyTerm sat ON sat.agencyFk = ag.id
|
||||
AND wo.isFreelance
|
||||
WHERE al.code IN ('PACKED', 'DELIVERED')
|
||||
AND co.code <> 'ES'
|
||||
WHERE co.code <> 'ES'
|
||||
AND am.name <> 'ABONO'
|
||||
AND w.code = 'ALG'
|
||||
AND t.id = vSelf
|
||||
|
@ -81591,26 +81738,27 @@ DELIMITER ;
|
|||
DELIMITER ;;
|
||||
CREATE DEFINER=`vn`@`localhost` PROCEDURE `zone_getAddresses`(
|
||||
vSelf INT,
|
||||
vShipped DATE,
|
||||
vLanded DATE,
|
||||
vDepartmentFk INT
|
||||
)
|
||||
BEGIN
|
||||
/**
|
||||
* Devuelve un listado de todos los clientes activos
|
||||
* con consignatarios a los que se les puede
|
||||
* vender producto para esa zona.
|
||||
* entregar producto para esa zona.
|
||||
*
|
||||
* @param vSelf Id de zona
|
||||
* @param vShipped Fecha de envio
|
||||
* @param vDepartmentFk Id de departamento
|
||||
* @param vLanded Fecha de entrega
|
||||
* @param vDepartmentFk Id de departamento | NULL para mostrar todos
|
||||
* @return Un select
|
||||
*/
|
||||
CALL zone_getPostalCode(vSelf);
|
||||
|
||||
WITH clientWithTicket AS (
|
||||
SELECT clientFk
|
||||
SELECT DISTINCT clientFk
|
||||
FROM vn.ticket
|
||||
WHERE shipped BETWEEN vShipped AND util.dayEnd(vShipped)
|
||||
WHERE landed BETWEEN vLanded AND util.dayEnd(vLanded)
|
||||
AND NOT isDeleted
|
||||
)
|
||||
SELECT c.id,
|
||||
c.name,
|
||||
|
@ -81620,7 +81768,7 @@ BEGIN
|
|||
u.name username,
|
||||
aai.invoiced,
|
||||
cnb.lastShipped,
|
||||
cwt.clientFk
|
||||
IF(cwt.clientFk, TRUE, FALSE) hasTicket
|
||||
FROM vn.client c
|
||||
JOIN vn.worker w ON w.id = c.salesPersonFk
|
||||
JOIN vn.workerDepartment wd ON wd.workerFk = w.id
|
||||
|
@ -81640,7 +81788,7 @@ BEGIN
|
|||
AND c.isActive
|
||||
AND ct.code = 'normal'
|
||||
AND bt.code <> 'worker'
|
||||
AND (d.id = vDepartmentFk OR NOT vDepartmentFk)
|
||||
AND (d.id = vDepartmentFk OR vDepartmentFk IS NULL)
|
||||
GROUP BY c.id;
|
||||
|
||||
DROP TEMPORARY TABLE tmp.zoneNodes;
|
||||
|
@ -82332,7 +82480,7 @@ BEGIN
|
|||
* @return tmp.zoneOption(zoneFk, hour, travelingDays, price, bonus, specificity) The computed options
|
||||
*/
|
||||
DECLARE vHour TIME DEFAULT TIME(util.VN_NOW());
|
||||
|
||||
|
||||
DROP TEMPORARY TABLE IF EXISTS tLandings;
|
||||
CREATE TEMPORARY TABLE tLandings
|
||||
(INDEX (eventFk))
|
||||
|
@ -82353,6 +82501,7 @@ BEGIN
|
|||
TIME(IFNULL(e.`hour`, z.`hour`)) `hour`,
|
||||
l.travelingDays,
|
||||
IFNULL(e.price, z.price) price,
|
||||
IFNULL(e.priceOptimum, z.priceOptimum) priceOptimum,
|
||||
IFNULL(e.bonus, z.bonus) bonus,
|
||||
l.landed,
|
||||
vShipped shipped
|
||||
|
@ -90893,4 +91042,4 @@ USE `vn2008`;
|
|||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||
|
||||
-- Dump completed on 2025-01-14 6:39:04
|
||||
-- Dump completed on 2025-01-28 7:08:42
|
||||
|
|
|
@ -6804,6 +6804,30 @@ DELIMITER ;;
|
|||
FOR EACH ROW
|
||||
BEGIN
|
||||
SET NEW.editorFk = account.myUser_getId();
|
||||
|
||||
IF NOT(NEW.`countryFk` <=> OLD.`countryFk`) OR NOT(NEW.`itemFk` <=> OLD.`itemFk`) THEN
|
||||
CALL util.throw('Only the VAT can be modified');
|
||||
END IF;
|
||||
END */;;
|
||||
DELIMITER ;
|
||||
/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
||||
/*!50003 SET character_set_client = @saved_cs_client */ ;
|
||||
/*!50003 SET character_set_results = @saved_cs_results */ ;
|
||||
/*!50003 SET collation_connection = @saved_col_connection */ ;
|
||||
/*!50003 SET @saved_cs_client = @@character_set_client */ ;
|
||||
/*!50003 SET @saved_cs_results = @@character_set_results */ ;
|
||||
/*!50003 SET @saved_col_connection = @@collation_connection */ ;
|
||||
/*!50003 SET character_set_client = utf8mb4 */ ;
|
||||
/*!50003 SET character_set_results = utf8mb4 */ ;
|
||||
/*!50003 SET collation_connection = utf8mb4_unicode_ci */ ;
|
||||
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
||||
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
|
||||
DELIMITER ;;
|
||||
/*!50003 CREATE*/ /*!50017 DEFINER=`vn`@`localhost`*/ /*!50003 TRIGGER `vn`.`itemTaxCountry_beforeDelete`
|
||||
BEFORE DELETE ON `itemTaxCountry`
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
CALL util.throw('Records in this table cannot be deleted');
|
||||
END */;;
|
||||
DELIMITER ;
|
||||
/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
||||
|
@ -11019,6 +11043,92 @@ DELIMITER ;
|
|||
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
||||
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
|
||||
DELIMITER ;;
|
||||
/*!50003 CREATE*/ /*!50017 DEFINER=`vn`@`localhost`*/ /*!50003 TRIGGER `vn`.`workerMana_beforeInsert`
|
||||
BEFORE INSERT ON `workerMana`
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
IF (SELECT EXISTS(SELECT TRUE FROM workerManaExcluded WHERE workerFk = NEW.workerFk)) THEN
|
||||
CALL util.throw('Worker is excluded from mana');
|
||||
END IF;
|
||||
END */;;
|
||||
DELIMITER ;
|
||||
/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
||||
/*!50003 SET character_set_client = @saved_cs_client */ ;
|
||||
/*!50003 SET character_set_results = @saved_cs_results */ ;
|
||||
/*!50003 SET collation_connection = @saved_col_connection */ ;
|
||||
/*!50003 SET @saved_cs_client = @@character_set_client */ ;
|
||||
/*!50003 SET @saved_cs_results = @@character_set_results */ ;
|
||||
/*!50003 SET @saved_col_connection = @@collation_connection */ ;
|
||||
/*!50003 SET character_set_client = utf8mb4 */ ;
|
||||
/*!50003 SET character_set_results = utf8mb4 */ ;
|
||||
/*!50003 SET collation_connection = utf8mb4_unicode_ci */ ;
|
||||
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
||||
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
|
||||
DELIMITER ;;
|
||||
/*!50003 CREATE*/ /*!50017 DEFINER=`vn`@`localhost`*/ /*!50003 TRIGGER `vn`.`workerMana_beforeUpdate`
|
||||
BEFORE UPDATE ON `workerMana`
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
IF (SELECT EXISTS(SELECT TRUE FROM workerManaExcluded WHERE workerFk = NEW.workerFk)) THEN
|
||||
CALL util.throw('Worker is excluded from mana');
|
||||
END IF;
|
||||
END */;;
|
||||
DELIMITER ;
|
||||
/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
||||
/*!50003 SET character_set_client = @saved_cs_client */ ;
|
||||
/*!50003 SET character_set_results = @saved_cs_results */ ;
|
||||
/*!50003 SET collation_connection = @saved_col_connection */ ;
|
||||
/*!50003 SET @saved_cs_client = @@character_set_client */ ;
|
||||
/*!50003 SET @saved_cs_results = @@character_set_results */ ;
|
||||
/*!50003 SET @saved_col_connection = @@collation_connection */ ;
|
||||
/*!50003 SET character_set_client = utf8mb4 */ ;
|
||||
/*!50003 SET character_set_results = utf8mb4 */ ;
|
||||
/*!50003 SET collation_connection = utf8mb4_unicode_ci */ ;
|
||||
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
||||
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
|
||||
DELIMITER ;;
|
||||
/*!50003 CREATE*/ /*!50017 DEFINER=`vn`@`localhost`*/ /*!50003 TRIGGER `vn`.`workerManaExcluded_beforeInsert`
|
||||
BEFORE INSERT ON `workerManaExcluded`
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
DELETE FROM workerMana
|
||||
WHERE workerFk = NEW.workerFk;
|
||||
END */;;
|
||||
DELIMITER ;
|
||||
/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
||||
/*!50003 SET character_set_client = @saved_cs_client */ ;
|
||||
/*!50003 SET character_set_results = @saved_cs_results */ ;
|
||||
/*!50003 SET collation_connection = @saved_col_connection */ ;
|
||||
/*!50003 SET @saved_cs_client = @@character_set_client */ ;
|
||||
/*!50003 SET @saved_cs_results = @@character_set_results */ ;
|
||||
/*!50003 SET @saved_col_connection = @@collation_connection */ ;
|
||||
/*!50003 SET character_set_client = utf8mb4 */ ;
|
||||
/*!50003 SET character_set_results = utf8mb4 */ ;
|
||||
/*!50003 SET collation_connection = utf8mb4_unicode_ci */ ;
|
||||
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
||||
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
|
||||
DELIMITER ;;
|
||||
/*!50003 CREATE*/ /*!50017 DEFINER=`vn`@`localhost`*/ /*!50003 TRIGGER `vn`.`workerManaExcluded_beforeUpdate`
|
||||
BEFORE UPDATE ON `workerManaExcluded`
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
DELETE FROM workerMana
|
||||
WHERE workerFk = NEW.workerFk;
|
||||
END */;;
|
||||
DELIMITER ;
|
||||
/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
||||
/*!50003 SET character_set_client = @saved_cs_client */ ;
|
||||
/*!50003 SET character_set_results = @saved_cs_results */ ;
|
||||
/*!50003 SET collation_connection = @saved_col_connection */ ;
|
||||
/*!50003 SET @saved_cs_client = @@character_set_client */ ;
|
||||
/*!50003 SET @saved_cs_results = @@character_set_results */ ;
|
||||
/*!50003 SET @saved_col_connection = @@collation_connection */ ;
|
||||
/*!50003 SET character_set_client = utf8mb4 */ ;
|
||||
/*!50003 SET character_set_results = utf8mb4 */ ;
|
||||
/*!50003 SET collation_connection = utf8mb4_unicode_ci */ ;
|
||||
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
||||
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
|
||||
DELIMITER ;;
|
||||
/*!50003 CREATE*/ /*!50017 DEFINER=`vn`@`localhost`*/ /*!50003 TRIGGER `vn`.`workerTimeControl_beforeInsert`
|
||||
BEFORE INSERT ON `workerTimeControl`
|
||||
FOR EACH ROW
|
||||
|
@ -11085,11 +11195,13 @@ DELIMITER ;;
|
|||
AFTER DELETE ON `workerTimeControl`
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
INSERT INTO workerLog
|
||||
SET `action` = 'delete',
|
||||
`changedModel` = 'WorkerTimeControl',
|
||||
`changedModelId` = OLD.id,
|
||||
`userFk` = account.myUser_getId();
|
||||
IF account.myUser_getId() IS NOT NULL THEN
|
||||
INSERT INTO workerLog
|
||||
SET `action` = 'delete',
|
||||
`changedModel` = 'WorkerTimeControl',
|
||||
`changedModelId` = OLD.id,
|
||||
`userFk` = account.myUser_getId();
|
||||
END IF;
|
||||
END */;;
|
||||
DELIMITER ;
|
||||
/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
||||
|
@ -11499,4 +11611,4 @@ USE `vn2008`;
|
|||
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||
|
||||
-- Dump completed on 2025-01-14 6:39:25
|
||||
-- Dump completed on 2025-01-28 7:09:01
|
||||
|
|
|
@ -321,6 +321,11 @@ UPDATE `vn`.`agencyMode` SET `web` = 1, `reportMail` = 'no-reply@gothamcity.com'
|
|||
|
||||
UPDATE `vn`.`agencyMode` SET `code` = 'refund' WHERE `id` = 23;
|
||||
|
||||
INSERT INTO `vn`.`agencyIncoming`(`agencyModeFk`)
|
||||
VALUES
|
||||
(1),
|
||||
(2);
|
||||
|
||||
INSERT INTO `vn`.`payMethod`(`id`,`code`, `name`, `graceDays`, `outstandingDebt`, `isIbanRequiredForClients`, `isIbanRequiredForSuppliers`, `hasVerified`)
|
||||
VALUES
|
||||
(1, NULL, 'PayMethod one', 0, 001, 0, 0, 0),
|
||||
|
@ -747,13 +752,15 @@ INSERT INTO `vn`.`zoneConfig` (`id`, `scope`) VALUES (1, '1');
|
|||
|
||||
INSERT INTO `vn`.`route`(`id`, `time`, `workerFk`, `created`, `vehicleFk`, `agencyModeFk`, `description`, `m3`, `cost`, `started`, `finished`, `zoneFk`, `dated`)
|
||||
VALUES
|
||||
(1, '1899-12-30 12:15:00', 56, util.VN_CURDATE(), 1, 1, 'first route', 1.8, 10, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1, util.VN_CURDATE()),
|
||||
(1, '1899-12-30 12:15:00', 133, util.VN_CURDATE(), 1, 1, 'first route', 1.8, 10, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1, util.VN_CURDATE()),
|
||||
(2, '1899-12-30 13:20:00', 56, util.VN_CURDATE(), 1, 2, 'second route', 0.2, 20, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 9, util.VN_CURDATE()),
|
||||
(3, '1899-12-30 14:30:00', 56, util.VN_CURDATE(), 2, 3, 'third route', 0.5, 30, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 10, util.VN_CURDATE()),
|
||||
(4, '1899-12-30 15:45:00', 56, util.VN_CURDATE(), 3, 4, 'fourth route', 0, 40, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 12, util.VN_CURDATE()),
|
||||
(5, '1899-12-30 16:00:00', 56, util.VN_CURDATE(), 4, 5, 'fifth route', 0.1, 50, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 13, util.VN_CURDATE()),
|
||||
(6, NULL, 57, util.VN_CURDATE(), 5, 7, 'sixth route', 1.7, 60, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 3, util.VN_CURDATE()),
|
||||
(7, NULL, 57, util.VN_CURDATE(), 6, 8, 'seventh route', 0, 70, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 5, util.VN_CURDATE());
|
||||
(7, NULL, 57, util.VN_CURDATE(), 6, 8, 'seventh route', 0, 70, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 5, util.VN_CURDATE()),
|
||||
(8, NULL, 133, util.VN_CURDATE(), 1, 1, 'eighth route', 1.8, 10.0, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1, util.VN_CURDATE()),
|
||||
(9, NULL, 133, util.VN_CURDATE(), 1, 2, 'ninth route', 0.2, 20.0, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 9, util.VN_CURDATE());
|
||||
|
||||
INSERT INTO `vn`.`ticket`(`id`, `priority`, `agencyModeFk`,`warehouseFk`,`routeFk`, `shipped`, `landed`, `clientFk`,`nickname`, `addressFk`, `refFk`, `isDeleted`, `zoneFk`, `zonePrice`, `zoneBonus`, `created`, `weight`, `cmrFk`, `problem`, `risk`)
|
||||
VALUES
|
||||
|
@ -2634,9 +2641,9 @@ REPLACE INTO `vn`.`invoiceIn`(`id`, `serialNumber`,`serial`, `supplierFk`, `issu
|
|||
(9, 1009, 'R', 2, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 1242, 0, 442, 1,util.VN_CURDATE()),
|
||||
(10, 1010, 'R', 2, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 1243, 0, 442, 1,util.VN_CURDATE());
|
||||
|
||||
INSERT INTO `vn`.`invoiceInConfig` (`id`, `retentionRate`, `retentionName`, `sageFarmerWithholdingFk`, `daysAgo`)
|
||||
INSERT INTO `vn`.`invoiceInConfig` (`id`, `retentionRate`, `retentionName`, `sageFarmerWithholdingFk`, `daysAgo`, `balanceStartingDate`)
|
||||
VALUES
|
||||
(1, -2, '2% retention', 2, 45);
|
||||
(1, -2, '2% retention', 2, 45, '2000-01-01');
|
||||
|
||||
INSERT INTO `vn`.`invoiceInDueDay`(`invoiceInFk`, `dueDated`, `bankFk`, `amount`)
|
||||
VALUES
|
||||
|
@ -3200,7 +3207,7 @@ UPDATE vn.department
|
|||
SET workerFk = null;
|
||||
|
||||
INSERT INTO vn.packaging
|
||||
VALUES('--', 2745600.00, 100.00, 120.00, 220.00, 0.00, 1, '2001-01-01 00:00:00.000', NULL, NULL, NULL, 0.00, 16, 0.00, 0, NULL, 0.00, NULL, NULL, 0, NULL, 0, 0,0,1);
|
||||
VALUES('--', 2745600.00, 100.00, 120.00, 220.00, 0.00, 1, '2001-01-01 00:00:00.000', NULL, NULL, NULL, 0.00, 16, 0.00, 0, NULL, 0.00, NULL, NULL, 0, NULL, 0, 0,0,1,0);
|
||||
|
||||
|
||||
INSERT IGNORE INTO vn.intrastat
|
||||
|
@ -4045,6 +4052,9 @@ INSERT IGNORE INTO vn.saySimpleConfig (url, defaultChannel)
|
|||
INSERT INTO vn.workerIrpf (workerFk,spouseNif, geographicMobilityDate)
|
||||
VALUES (1106,'26493101E','2019-09-20');
|
||||
|
||||
INSERT INTO vn.payment (received, supplierFk, amount, currencyFk, divisa, bankFk, payMethodFk, bankingFees, concept, companyFk, created, isConciliated, dueDated, workerFk) VALUES
|
||||
(util.VN_CURDATE(), 1, 1000.00, 1, NULL, 1, 1, 0.0, 'n/pago', 442, util.VN_CURDATE(), 1, util.VN_CURDATE(), 9);
|
||||
|
||||
INSERT INTO vn.referenceRate (currencyFk, dated, value)
|
||||
VALUES (2, '2000-12-01', 1.0495),
|
||||
(2, '2001-01-01', 1.0531),
|
||||
|
@ -4057,11 +4067,7 @@ INSERT IGNORE INTO vn.inventoryConfig
|
|||
SET id = 1,
|
||||
supplierFk = 4;
|
||||
|
||||
INSERT INTO edi.ektConfig (usefulAuctionLeftSegmentLength, standardBarcodeLength, floridayBarcodeLength, floramondoBarcodeLength, defaultKlo, ektRecentScopeDays)
|
||||
VALUES(13, 20, 6, 13, 99, 7);
|
||||
UPDATE vn.worker
|
||||
SET isFreelance=1
|
||||
WHERE firstName='deliveryFreelancer';
|
||||
|
||||
INSERT INTO edi.ekt (barcode, entryYear, batchNumber, deliveryNumber, vendorOrderNumber, fec, hor, now, ptj, `ref`, item, pac, qty, ori, cat, agj, kop, ptd, sub, pro, pri, package, auction, klo, k1, k2, k3, k4, s1, s2, s3, s4, s5, s6, ok, trolleyFk, putOrderFk, scanned, cps, dp, sender)
|
||||
VALUES (NULL, 2001, 99353020610200010, NULL, 206102, '2001-01-01', '16:58:00', '2001-01-01 17:00:02.000', 66011, 4293, 'Asparagus 1ste Klbh Rood', 100, 10, 'NL', 'A1', 206102, 1666, NULL, NULL, 81793, 0.27, 566, NULL, 99, NULL, NULL, NULL, NULL, '45', NULL, NULL, NULL, '50', '221', 0, NULL, NULL, 0, NULL, 8714231208754, 8719604986857),
|
||||
(NULL, 2001, 19735391131, 5124517491131, 5124517491131, '2001-01-01', '13:24:00', '2001-01-01 13:26:01.000', 66011, 103686, 'HYP COCO DIABLO', 80, 16, 'KE', 'A1', NULL, 3127, '73732', 1662, 33532, 0.35, 566, 1, NULL, NULL, NULL, NULL, NULL, '40', NULL, NULL, '29', '10', NULL, -1, NULL, NULL, 0, NULL, 8714231208754, 8713783439043),
|
||||
(NULL, 2001, NULL, NULL, NULL, '2001-01-01', '13:19:00', '2001-01-01 13:22:02.000', NULL, 113069, 'HYP MAG SEASONS', 100, 9, 'KE', NULL, 90244, 1666, '00000', 76378, 76378, 0.15, 566, 1, 99, NULL, NULL, NULL, NULL, '40', NULL, NULL, '29', '5', NULL, -1, NULL, NULL, 0, NULL, NULL, 8714231196389),
|
||||
(NULL, 2001, 261917, NULL, 261917, '2001-01-01', '09:10:00', '2001-01-01 09:12:01.000', 66011, 2287, 'LI ORIENTAL OVERIG Oriental pink 2', 60, 24, 'NL', 'A2', 5373272, 1666, NULL, NULL, 26195, 0.35, 520, NULL, NULL, NULL, NULL, NULL, NULL, '80', '25', '23', '1', '10', '12', -1, NULL, NULL, 0, NULL, 8714231208754, 8713782575308)
|
|
@ -3,7 +3,7 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `cache`.`available_refres
|
|||
OUT `vCalc` INT,
|
||||
`vRefresh` INT,
|
||||
`vWarehouse` INT,
|
||||
`vDated` DATE
|
||||
`vAvailabled` DATETIME
|
||||
)
|
||||
proc: BEGIN
|
||||
DECLARE vStartDate DATE;
|
||||
|
@ -12,6 +12,7 @@ proc: BEGIN
|
|||
DECLARE vInventoryDate DATE;
|
||||
DECLARE vLifeScope DATE;
|
||||
DECLARE vWarehouseFkInventory INT;
|
||||
DECLARE vDated DATE;
|
||||
|
||||
DECLARE EXIT HANDLER FOR SQLEXCEPTION
|
||||
BEGIN
|
||||
|
@ -19,13 +20,17 @@ proc: BEGIN
|
|||
RESIGNAL;
|
||||
END;
|
||||
|
||||
IF vDated < util.VN_CURDATE() THEN
|
||||
IF vAvailabled < util.VN_CURDATE() THEN
|
||||
LEAVE proc;
|
||||
END IF;
|
||||
|
||||
SET vDated = DATE(vAvailabled);
|
||||
|
||||
SET vAvailabled = vDated + INTERVAL HOUR(vAvailabled) HOUR;
|
||||
|
||||
CALL vn.item_getStock(vWarehouse, vDated, NULL);
|
||||
|
||||
SET vParams = CONCAT_WS('/', vWarehouse, vDated);
|
||||
SET vParams = CONCAT_WS('/', vWarehouse, vAvailabled);
|
||||
CALL cache_calc_start (vCalc, vRefresh, 'available', vParams);
|
||||
|
||||
IF !vRefresh THEN
|
||||
|
@ -87,11 +92,10 @@ proc: BEGIN
|
|||
SELECT i.itemFk, i.landed, i.quantity
|
||||
FROM vn.itemEntryIn i
|
||||
JOIN itemRange ir ON ir.itemFk = i.itemFk
|
||||
LEFT JOIN edi.warehouseFloramondo wf ON wf.entryFk = i.entryFk
|
||||
WHERE i.landed >= vStartDate
|
||||
AND IFNULL(i.availabled, i.landed) <= vAvailabled
|
||||
AND (ir.ended IS NULL OR i.landed <= ir.ended)
|
||||
AND i.warehouseInFk = vWarehouse
|
||||
AND ISNULL(wf.entryFk)
|
||||
UNION ALL
|
||||
SELECT i.itemFk, i.shipped, i.quantity
|
||||
FROM vn.itemEntryOut i
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `edi`.`ekt_scan`(
|
||||
vBarcode VARCHAR(512)
|
||||
)
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `edi`.`ekt_scan`(vBarcode VARCHAR(512))
|
||||
BEGIN
|
||||
/**
|
||||
* Busca transaciones a partir de un codigo de barras, las marca como escaneadas
|
||||
|
@ -45,16 +43,16 @@ BEGIN
|
|||
WHEN LENGTH(vBarcode) <= vFloridayBarcodeLength THEN
|
||||
INSERT INTO tmp.ekt
|
||||
SELECT id
|
||||
FROM ektRecent
|
||||
WHERE cps = vBarcode
|
||||
OR batchNumber = vBarcode;
|
||||
FROM ektRecent e
|
||||
WHERE e.cps = vBarcode
|
||||
OR e.batchNumber = vBarcode;
|
||||
|
||||
WHEN LENGTH(vBarcode) = vFloramondoBarcodeLength THEN
|
||||
INSERT INTO tmp.ekt
|
||||
SELECT id
|
||||
FROM ektRecent
|
||||
WHERE pro = MID(vBarcode, 2, 6)
|
||||
AND CAST(ptd AS SIGNED) = MID(vBarcode, 8, 5);
|
||||
SELECT e.id
|
||||
FROM ektRecent e
|
||||
WHERE e.pro = MID(vBarcode,2,6)
|
||||
AND CAST(e.ptd AS SIGNED) = MID(vBarcode, 8, 5);
|
||||
|
||||
ELSE
|
||||
SET vBarcode = LPAD(vBarcode, vStandardBarcodeLength, '0');
|
||||
|
@ -91,13 +89,13 @@ BEGIN
|
|||
-- BatchNumber largo
|
||||
IF NOT vIsFound THEN
|
||||
INSERT INTO tmp.ekt
|
||||
SELECT id
|
||||
FROM ektRecent
|
||||
WHERE batchNumber = LEFT(
|
||||
SELECT id
|
||||
FROM ektRecent e
|
||||
WHERE e.batchNumber = LEFT(
|
||||
vBarcode,
|
||||
vUsefulAuctionLeftSegmentLength
|
||||
)
|
||||
AND batchNumber > 0;
|
||||
AND e.batchNumber > 0;
|
||||
|
||||
SELECT COUNT(*) FROM tmp.ekt INTO vIsFound;
|
||||
END IF;
|
||||
|
@ -105,9 +103,9 @@ BEGIN
|
|||
-- Order Number
|
||||
IF NOT vIsFound THEN
|
||||
INSERT INTO tmp.ekt
|
||||
SELECT id
|
||||
FROM ektRecent
|
||||
WHERE putOrderFk = vBarcode;
|
||||
SELECT id
|
||||
FROM ektRecent e
|
||||
WHERE e.putOrderFk = vBarcode;
|
||||
|
||||
SELECT COUNT(*) FROM tmp.ekt INTO vIsFound;
|
||||
END IF;
|
||||
|
@ -116,9 +114,9 @@ BEGIN
|
|||
IF NOT vIsFound THEN
|
||||
INSERT INTO tmp.ekt
|
||||
SELECT id
|
||||
FROM ektRecent
|
||||
WHERE deliveryNumber = MID(vBarcode, 4, 13)
|
||||
AND deliveryNumber > 0;
|
||||
FROM ektRecent e
|
||||
WHERE e.deliveryNumber = MID(vBarcode, 4, 13)
|
||||
AND e.deliveryNumber > 0;
|
||||
|
||||
SELECT COUNT(*) FROM tmp.ekt INTO vIsFound;
|
||||
END IF;
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `sage`.`accountingMovements_add`(
|
||||
vYear INT,
|
||||
vYear INT,
|
||||
vCompanyFk INT
|
||||
)
|
||||
BEGIN
|
||||
/**
|
||||
* Traslada la info de contabilidad generada en base a vn.XDiario a la tabla sage.movConta
|
||||
* Traslada la info de contabilidad generada en base a vn.XDiario a la tabla sage.movConta
|
||||
* para poder ejecutar posteriormente el proceso de importación de datos de SQL Server
|
||||
* Solo traladará los asientos marcados con el campo vn.XDiario.enlazadoSage = FALSE
|
||||
* @vYear Año contable del que se quiere trasladar la información
|
||||
|
@ -23,6 +23,7 @@ BEGIN
|
|||
DECLARE vInvoiceTypeInformativeCode VARCHAR(1);
|
||||
DECLARE vCountryCanariasCode, vCountryCeutaMelillaCode VARCHAR(2);
|
||||
DECLARE vCompanyCode INT;
|
||||
DECLARE vHasErrorTax BOOL DEFAULT FALSE;
|
||||
|
||||
SELECT SiglaNacion INTO vCountryCanariasCode
|
||||
FROM Naciones
|
||||
|
@ -44,12 +45,12 @@ BEGIN
|
|||
FROM taxType
|
||||
WHERE code = 'import4';
|
||||
|
||||
SELECT shipmentTransactionTypeFk,
|
||||
definitiveExportTransactionTypeFk,
|
||||
SELECT shipmentTransactionTypeFk,
|
||||
definitiveExportTransactionTypeFk,
|
||||
pendingServiceTransactionTypeFk,
|
||||
company_getCode(vCompanyFk)
|
||||
INTO vTransactionExportTaxFreeFk,
|
||||
vTransactionExportFk,
|
||||
vTransactionExportFk,
|
||||
vDuaTransactionFk,
|
||||
vCompanyCode
|
||||
FROM config;
|
||||
|
@ -66,6 +67,24 @@ BEGIN
|
|||
WHERE enlazadoSage = FALSE
|
||||
AND Asiento <> 1 ;
|
||||
|
||||
SELECT EXISTS (
|
||||
SELECT TRUE
|
||||
FROM vn.XDiario x
|
||||
JOIN vn.invoiceIn ii ON ii.id = x.CLAVE
|
||||
JOIN vn.invoiceInTax it ON it.invoiceInFk = ii.id
|
||||
LEFT JOIN TiposIva ti ON ti.CodigoIva = it.taxTypeSageFk
|
||||
LEFT JOIN taxType tt ON tt.id = it.taxTypeSageFk
|
||||
WHERE x.FECHA BETWEEN vDatedFrom AND vDatedTo
|
||||
AND NOT x.enlazadoSage
|
||||
AND x.empresa_id = vCompanyFk
|
||||
AND it.taxTypeSageFk
|
||||
AND (ti.CodigoIva IS NULL OR tt.id IS NULL)
|
||||
) INTO vHasErrorTax;
|
||||
|
||||
IF vHasErrorTax tHEN
|
||||
CALL util.throw ('Error in tables for received invoices tax');
|
||||
END IF;
|
||||
|
||||
CALL invoiceOut_manager(vYear, vCompanyFk);
|
||||
CALL invoiceIn_manager(vYear, vCompanyFk);
|
||||
|
||||
|
@ -306,8 +325,8 @@ BEGIN
|
|||
mci.FechaFacturaOriginal = x.FECHA_EX,
|
||||
mci.SuFacturaNo = x.FACTURAEX,
|
||||
mci.FechaOperacion = x.FECHA_OP,
|
||||
mci.ImporteFactura = mci.ImporteFactura +
|
||||
x.BASEEURO +
|
||||
mci.ImporteFactura = mci.ImporteFactura +
|
||||
x.BASEEURO +
|
||||
CAST((x.IVA / 100) * x.BASEEURO AS DECIMAL(10, 2))
|
||||
WHERE pm.description = 'HP Iva pendiente'
|
||||
AND mci.enlazadoSage = FALSE
|
||||
|
@ -326,7 +345,7 @@ BEGIN
|
|||
mci.CodigoIva2 = vTaxImportFk,
|
||||
mci.IvaDeducible2 = TRUE,
|
||||
mci.ImporteFactura = mci.ImporteFactura +
|
||||
x.BASEEURO +
|
||||
x.BASEEURO +
|
||||
CAST((x.IVA / 100) * x.BASEEURO AS DECIMAL(10, 2))
|
||||
WHERE pm.description = 'HP Iva pendiente'
|
||||
AND mci.enlazadoSage = FALSE
|
||||
|
@ -344,8 +363,8 @@ BEGIN
|
|||
mci.CodigoTransaccion3 = vDuaTransactionFk ,
|
||||
mci.CodigoIva3 = vTaxImportSuperReducedFk,
|
||||
mci.IvaDeducible3 = TRUE,
|
||||
mci.ImporteFactura = mci.ImporteFactura +
|
||||
x.BASEEURO +
|
||||
mci.ImporteFactura = mci.ImporteFactura +
|
||||
x.BASEEURO +
|
||||
CAST((x.IVA / 100) * x.BASEEURO AS DECIMAL(10, 2))
|
||||
WHERE pm.description = 'HP Iva pendiente'
|
||||
AND mci.enlazadoSage = FALSE
|
||||
|
@ -379,14 +398,14 @@ BEGIN
|
|||
OR CodigoTransaccion2 = vTransactionExportFk
|
||||
OR CodigoTransaccion3 = vTransactionExportFk
|
||||
OR CodigoTransaccion4 = vTransactionExportFk)
|
||||
AND SiglaNacion IN (vCountryCanariasCode COLLATE utf8mb3_unicode_ci,
|
||||
AND SiglaNacion IN (vCountryCanariasCode COLLATE utf8mb3_unicode_ci,
|
||||
vCountryCeutaMelillaCode COLLATE utf8mb3_unicode_ci);
|
||||
|
||||
UPDATE movConta mc
|
||||
SET CodigoDivisa = 'USD',
|
||||
FactorCambio = TRUE,
|
||||
ImporteCambio = ABS( CAST( IF( ImporteDivisa <> 0 AND ImporteCambio = 0,
|
||||
ImporteAsiento / ImporteDivisa,
|
||||
ImporteCambio = ABS( CAST( IF( ImporteDivisa <> 0 AND ImporteCambio = 0,
|
||||
ImporteAsiento / ImporteDivisa,
|
||||
ImporteCambio) AS DECIMAL( 10, 2)))
|
||||
WHERE enlazadoSage = FALSE
|
||||
AND (ImporteCambio <> 0 OR ImporteDivisa <> 0 OR FactorCambio);
|
||||
|
@ -403,20 +422,20 @@ BEGIN
|
|||
WITH client AS(
|
||||
SELECT DISTINCT c.id
|
||||
FROM sage.movConta mc
|
||||
JOIN vn.client c ON c.accountingAccount = mc.CodigoCuenta
|
||||
WHERE NOT enlazadoSage
|
||||
),supplier AS(
|
||||
JOIN vn.client c ON c.accountingAccount = mc.CodigoCuenta
|
||||
WHERE NOT enlazadoSage
|
||||
),supplier AS(
|
||||
SELECT DISTINCT s.id
|
||||
FROM sage.movConta mc
|
||||
JOIN vn.supplier s ON s.account = mc.CodigoCuenta
|
||||
WHERE NOT enlazadoSage
|
||||
JOIN vn.supplier s ON s.account = mc.CodigoCuenta
|
||||
WHERE NOT enlazadoSage
|
||||
),clientSupplierSync AS(
|
||||
SELECT idClientSupplier, `type`
|
||||
FROM sage.clientSupplier cs
|
||||
WHERE isSync
|
||||
FROM sage.clientSupplier cs
|
||||
WHERE isSync
|
||||
)
|
||||
SELECT idClientSupplier, `type`
|
||||
FROM sage.clientSupplier cs
|
||||
FROM sage.clientSupplier cs
|
||||
WHERE NOT isSync
|
||||
UNION
|
||||
SELECT id, 'C'
|
||||
|
@ -424,7 +443,7 @@ BEGIN
|
|||
LEFT JOIN clientSupplierSync cs ON cs.idClientSupplier = c.id
|
||||
AND cs.Type ='C'
|
||||
WHERE cs.idClientSupplier IS NULL
|
||||
UNION
|
||||
UNION
|
||||
SELECT id, 'P'
|
||||
FROM supplier s
|
||||
LEFT JOIN clientSupplierSync cs ON cs.idClientSupplier = s.id
|
||||
|
@ -436,7 +455,7 @@ BEGIN
|
|||
INSERT IGNORE INTO sage.clientSupplier (companyFk, `type`, idClientSupplier, isSync)
|
||||
SELECT vCompanyCode, `type`, idClientSupplier, FALSE
|
||||
FROM tmp.clientSupplier;
|
||||
|
||||
|
||||
DROP TEMPORARY TABLE tmp.clientSupplier;
|
||||
|
||||
CALL pgc_add(vCompanyFk);
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`entry_transfer`(
|
||||
CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `vn`.`entry_transfer`(
|
||||
vOriginalEntry INT,
|
||||
OUT vNewEntryFk INT
|
||||
)
|
||||
|
|
|
@ -15,8 +15,6 @@ BEGIN
|
|||
*
|
||||
* @return tmp.itemList(itemFk, stock, visible, available)
|
||||
*/
|
||||
DECLARE vIsLogifloraDay BOOL DEFAULT vn.isLogifloraDay(vDated, vWarehouseFk);
|
||||
|
||||
SET vDated = TIMESTAMP(vDated, '00:00:00');
|
||||
|
||||
CREATE OR REPLACE TEMPORARY TABLE tmp.itemList
|
||||
|
@ -36,14 +34,11 @@ BEGIN
|
|||
UNION ALL
|
||||
SELECT iei.itemFk, iei.quantity
|
||||
FROM itemEntryIn iei
|
||||
LEFT JOIN edi.warehouseFloramondo wf ON wf.entryFk = iei.entryFk
|
||||
JOIN item i ON i.id = iei.itemFk
|
||||
WHERE iei.landed >= util.VN_CURDATE()
|
||||
AND iei.landed < vDated
|
||||
AND iei.warehouseInFk = vWarehouseFk
|
||||
AND (vItemFk IS NULL OR iei.itemFk = vItemFk)
|
||||
AND (wf.entryFk IS NULL OR vIsLogifloraDay)
|
||||
AND NOT (iei.landed > util.VN_CURDATE() AND i.isFloramondo)
|
||||
UNION ALL
|
||||
SELECT ieo.itemFk, ieo.quantity
|
||||
FROM itemEntryOut ieo
|
||||
|
@ -52,7 +47,6 @@ BEGIN
|
|||
AND ieo.shipped < vDated
|
||||
AND ieo.warehouseOutFk = vWarehouseFk
|
||||
AND (vItemFk IS NULL OR ieo.itemFk = vItemFk)
|
||||
AND NOT (ieo.shipped > util.VN_CURDATE() AND i.isFloramondo)
|
||||
) sub
|
||||
GROUP BY itemFk
|
||||
HAVING stock;
|
||||
|
|
|
@ -41,6 +41,7 @@ BEGIN
|
|||
) currencyBalance
|
||||
FROM (
|
||||
SELECT NULL bankFk,
|
||||
NULL bank,
|
||||
ii.companyFk,
|
||||
ii.serial,
|
||||
ii.id,
|
||||
|
@ -74,6 +75,7 @@ BEGIN
|
|||
GROUP BY iid.id, ii.id
|
||||
UNION ALL
|
||||
SELECT p.bankFk,
|
||||
a.bank,
|
||||
p.companyFk,
|
||||
NULL,
|
||||
p.id,
|
||||
|
@ -109,6 +111,7 @@ BEGIN
|
|||
AND (vIsConciliated = p.isConciliated OR NOT vIsConciliated)
|
||||
UNION ALL
|
||||
SELECT NULL,
|
||||
NULL bankFk,
|
||||
companyFk,
|
||||
NULL,
|
||||
se.id,
|
||||
|
@ -136,6 +139,7 @@ BEGIN
|
|||
AND (vIsConciliated = se.isConciliated OR NOT vIsConciliated)
|
||||
UNION ALL
|
||||
SELECT NULL bankFk,
|
||||
NULL,
|
||||
e.companyFk,
|
||||
'E' serial,
|
||||
e.invoiceNumber id,
|
||||
|
@ -154,7 +158,7 @@ BEGIN
|
|||
JOIN travel tr ON tr.id = e.travelFk
|
||||
JOIN currency c ON c.id = e.currencyFk
|
||||
WHERE e.supplierFk = vSupplierFk
|
||||
AND tr.landed >= CURDATE()
|
||||
AND tr.landed >= util.VN_CURDATE()
|
||||
AND e.invoiceInFk IS NULL
|
||||
AND vHasEntries
|
||||
ORDER BY (dated IS NULL AND NOT isBooked),
|
||||
|
|
|
@ -16,5 +16,9 @@ BEGIN
|
|||
IF NEW.awbFk IS NOT NULL THEN
|
||||
CALL travel_throwAwb(NEW.id);
|
||||
END IF;
|
||||
|
||||
IF NEW.availabled < NEW.landed THEN
|
||||
CALL util.throw('The travel availabled cannot be earlier than landed');
|
||||
END IF;
|
||||
END$$
|
||||
DELIMITER ;
|
||||
|
|
|
@ -40,5 +40,9 @@ BEGIN
|
|||
IF (NOT(NEW.awbFk <=> OLD.awbFk)) AND NEW.awbFk IS NOT NULL THEN
|
||||
CALL travel_throwAwb(NEW.id);
|
||||
END IF;
|
||||
|
||||
IF NEW.availabled < NEW.landed THEN
|
||||
CALL util.throw('The travel availabled cannot be earlier than landed');
|
||||
END IF;
|
||||
END$$
|
||||
DELIMITER ;
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
CREATE OR REPLACE DEFINER=`vn`@`localhost`
|
||||
SQL SECURITY DEFINER
|
||||
VIEW `vn`.`agencyModeIncoming` AS
|
||||
SELECT
|
||||
am.id,
|
||||
am.name
|
||||
FROM `vn`.`agencyMode` AS am
|
||||
JOIN `vn`.`agencyIncoming` AS ai
|
||||
ON am.id = ai.agencyModeFk;
|
|
@ -7,7 +7,8 @@ AS SELECT `t`.`warehouseInFk` AS `warehouseInFk`,
|
|||
`b`.`quantity` AS `quantity`,
|
||||
`t`.`isReceived` AS `isReceived`,
|
||||
`t`.`isRaid` AS `isVirtualStock`,
|
||||
`e`.`id` AS `entryFk`
|
||||
`e`.`id` AS `entryFk`,
|
||||
`t`.`availabled`
|
||||
FROM (
|
||||
(
|
||||
`vn`.`buy` `b`
|
||||
|
|
|
@ -18,5 +18,6 @@ AS SELECT `p`.`id` AS `Id_Cubo`,
|
|||
`p`.`base` AS `Base`,
|
||||
`p`.`isBox` AS `box`,
|
||||
`p`.`returnCost` AS `costeRetorno`,
|
||||
`p`.`isActive` AS `isActive`
|
||||
`p`.`isActive` AS `isActive`,
|
||||
`p`.`flippingCost` AS `flippingCost`
|
||||
FROM `vn`.`packaging` `p`
|
||||
|
|
|
@ -29,5 +29,6 @@ AS SELECT `a`.`id` AS `id`,
|
|||
`a`.`invoiceInPaletizedFk` AS `invoiceInPaletizedFk`,
|
||||
`a`.`observation` AS `observation`,
|
||||
`a`.`hasFreightPrepaid` AS `hasFreightPrepaid`,
|
||||
`a`.`propertyNumber` AS `propertyNumber`
|
||||
`a`.`propertyNumber` AS `propertyNumber`,
|
||||
`a`.`costPerKg` AS `costPerKg`
|
||||
FROM `vn`.`awb` `a`
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
ALTER TABLE vn.business
|
||||
ADD CONSTRAINT `business_companyCodeFk` FOREIGN KEY (`companyCodeFk`) REFERENCES `company` (`code`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- Auto-generated SQL script. Actual values for binary/complex data types may differ - what you see is the default string representation of values.
|
||||
INSERT INTO salix.ACL (model,property,accessType,permission,principalType,principalId)
|
||||
VALUES ('BusinessReasonEnd','find','*','ALLOW','ROLE','hr');
|
||||
INSERT INTO salix.ACL (model,property,accessType,permission,principalType,principalId)
|
||||
VALUES ('CalendarType','find','*','ALLOW','ROLE','hr');
|
||||
INSERT INTO salix.ACL (model,property,accessType,permission,principalType,principalId)
|
||||
VALUES ('OccupationCode','find','*','ALLOW','ROLE','hr');
|
||||
INSERT INTO salix.ACL (model,property,accessType,permission,principalType,principalId)
|
||||
VALUES ('BusinessReasonEnd','find','*','ALLOW','ROLE','hr');
|
||||
INSERT INTO salix.ACL (model,property,accessType,permission,principalType,principalId)
|
||||
VALUES ('WorkerBusinessProfessionalCategory','find','*','ALLOW','ROLE','hr');
|
||||
INSERT INTO salix.ACL (model,property,accessType,permission,principalType,principalId)
|
||||
VALUES ('WorkerBusinessAgreement','find','*','ALLOW','ROLE','hr');
|
||||
INSERT INTO salix.ACL (model,property,accessType,permission,principalType,principalId)
|
||||
VALUES ('WorkerBusinessType','find','*','ALLOW','ROLE','hr');
|
||||
INSERT INTO salix.ACL (model,property,accessType,permission,principalType,principalId)
|
||||
VALUES ('PayrollCategory','find','*','ALLOW','ROLE','hr');
|
||||
INSERT INTO salix.ACL (model,property,accessType,permission,principalType,principalId)
|
||||
VALUES ('Worker','__get__business','*','ALLOW','ROLE','hr');
|
||||
INSERT INTO salix.ACL (model,property,accessType,permission,principalType,principalId)
|
||||
VALUES ('Worker','__create__business','*','ALLOW','ROLE','hr');
|
||||
INSERT INTO salix.ACL (model,property,accessType,permission,principalType,principalId)
|
||||
VALUES ('Business','crud','*','ALLOW','ROLE','hr');
|
||||
|
|
@ -7,9 +7,9 @@ ALTER TABLE vn.invoiceOut ADD CONSTRAINT invoiceOut_customsAgentFk FOREIGN KEY (
|
|||
ALTER TABLE vn.invoiceOut ADD CONSTRAINT invoiceOut_incotermsFk FOREIGN KEY (incotermsFk)
|
||||
REFERENCES vn.incoterms (`code`) ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
|
||||
UPDATE vn.invoiceOut io
|
||||
JOIN vn.client c ON c.id = io.clientFk
|
||||
JOIN vn.ticket t ON t.clientFk = c.id
|
||||
JOIN vn.address a ON a.id = t.addressFk
|
||||
SET io.customsAgentFk = a.customsAgentFk,
|
||||
io.incotermsFk = a.incotermsFk;
|
||||
-- UPDATE vn.invoiceOut io
|
||||
-- JOIN vn.client c ON c.id = io.clientFk
|
||||
-- JOIN vn.ticket t ON t.clientFk = c.id
|
||||
-- JOIN vn.address a ON a.id = t.addressFk
|
||||
-- SET io.customsAgentFk = a.customsAgentFk,
|
||||
-- io.incotermsFk = a.incotermsFk;
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
INSERT INTO account.`role` (name,description,hasLogin)
|
||||
VALUES ('deliveryFreelancer','Repartidor autónomo',1);
|
||||
|
||||
INSERT INTO salix.ACL (model, property, accessType, permission, principalType, principalId)
|
||||
VALUES
|
||||
('Route', 'getTickets', 'READ', 'ALLOW', 'ROLE', 'deliveryFreelancer'),
|
||||
('AgencyTerm', 'filter', 'READ', 'ALLOW', 'ROLE', 'deliveryFreelancer'),
|
||||
('Route', 'summary', 'READ', 'ALLOW', 'ROLE', 'deliveryFreelancer'),
|
||||
('Route', 'getRouteByAgency', 'WRITE', 'ALLOW', 'ROLE', 'deliveryFreelancer'),
|
||||
('Route','filter','READ','ALLOW','ROLE','deliveryFreelancer'),
|
||||
('UserConfig','getUserConfig','*','ALLOW','ROLE','deliveryFreelancer'),
|
||||
('Route', 'getTickets', 'READ', 'ALLOW', 'ROLE', 'deliveryFreelancer'),
|
||||
('Route','guessPriority','WRITE','ALLOW','ROLE','deliveryFreelancer'),
|
||||
('Route','getDeliveryPoint','READ','ALLOW','ROLE','deliveryFreelancer'),
|
||||
('Route', 'findById', 'READ', 'ALLOW', 'ROLE', 'deliveryFreelancer'),
|
||||
('Route','sendSms','WRITE','ALLOW','ROLE','deliveryFreelancer'),
|
||||
('Ticket','updateAttributes','WRITE','ALLOW','ROLE','deliveryFreelancer'),
|
||||
('Client','findById','READ','ALLOW','ROLE','deliveryFreelancer');
|
||||
;
|
|
@ -0,0 +1,13 @@
|
|||
use `vn`;
|
||||
DELETE ai from
|
||||
`vn`.`agencyIncoming` ai
|
||||
LEFT JOIN `vn`.`agencyMode` am ON
|
||||
am.id = ai.agencyModeFk
|
||||
WHERE am.id IS null;
|
||||
|
||||
ALTER TABLE `vn`.`agencyIncoming`
|
||||
ADD CONSTRAINT `fk_agencyIncoming_agencyMode`
|
||||
FOREIGN KEY (`agencyModeFk`)
|
||||
REFERENCES `agencyMode`(`id`)
|
||||
ON DELETE CASCADE
|
||||
ON UPDATE CASCADE;
|
|
@ -0,0 +1,7 @@
|
|||
ALTER TABLE `vn`.`travelThermograph`
|
||||
ADD COLUMN `agencyModeFk` INT(11) NULL AFTER `editorFk`,
|
||||
ADD CONSTRAINT `travelThermograph_agencyIncoming_fk`
|
||||
FOREIGN KEY (`agencyModeFk`)
|
||||
REFERENCES `agencyIncoming`(`agencyModeFk`)
|
||||
ON DELETE RESTRICT
|
||||
ON UPDATE CASCADE;
|
|
@ -0,0 +1,2 @@
|
|||
ALTER TABLE `vn`.`tag`
|
||||
ADD COLUMN IF NOT EXISTS `validationRegex` varchar(50) DEFAULT NULL;
|
|
@ -0,0 +1,3 @@
|
|||
-- Place your SQL code here
|
||||
ALTER TABLE vn.travel ADD IF NOT EXISTS availabled DATETIME NULL
|
||||
COMMENT 'Indicates the moment in time when the goods become available for picking';
|
|
@ -0,0 +1,2 @@
|
|||
INSERT IGNORE INTO salix.ACL (model, property, accessType, permission, principalType, principalId)
|
||||
VALUES('Entry', 'transfer', 'WRITE', 'ALLOW', 'ROLE', 'coolerBoss');
|
|
@ -0,0 +1,2 @@
|
|||
ALTER TABLE vn.packaging
|
||||
ADD COLUMN flippingCost decimal(10, 2) NOT NULL DEFAULT 0.00
|
|
@ -0,0 +1 @@
|
|||
ALTER TABLE vn.travel CHANGE appointment appointment__ datetime DEFAULT NULL COMMENT '@deprecated 2025-01-28';
|
|
@ -0,0 +1,2 @@
|
|||
ALTER TABLE `vn`.`awb`
|
||||
ADD COLUMN `costPerKg` DECIMAL(10, 2) UNSIGNED DEFAULT NULL COMMENT 'Tarifa que indica a cuanto cuesta el kilo en ese vuelo';
|
|
@ -1,65 +0,0 @@
|
|||
import selectors from '../../helpers/selectors.js';
|
||||
import getBrowser from '../../helpers/puppeteer';
|
||||
|
||||
describe('Client defaulter path', () => {
|
||||
let browser;
|
||||
let page;
|
||||
|
||||
beforeAll(async() => {
|
||||
browser = await getBrowser();
|
||||
page = browser.page;
|
||||
await page.loginAndModule('insurance', 'client');
|
||||
await page.accessToSection('client.defaulter');
|
||||
});
|
||||
|
||||
afterAll(async() => {
|
||||
await browser.close();
|
||||
});
|
||||
|
||||
it('should count the amount of clients in the turns section', async() => {
|
||||
const result = await page.countElement(selectors.clientDefaulter.anyClient);
|
||||
|
||||
expect(result).toEqual(6);
|
||||
});
|
||||
|
||||
it('should check contain expected client', async() => {
|
||||
const clientName =
|
||||
await page.waitToGetProperty(selectors.clientDefaulter.firstClientName, 'innerText');
|
||||
const salesPersonName =
|
||||
await page.waitToGetProperty(selectors.clientDefaulter.firstSalesPersonName, 'innerText');
|
||||
|
||||
expect(clientName).toEqual('Ororo Munroe');
|
||||
expect(salesPersonName).toEqual('salesperson');
|
||||
});
|
||||
|
||||
it('should first observation not changed', async() => {
|
||||
const expectedObservation = 'Madness, as you know, is like gravity, all it takes is a little push';
|
||||
const result = await page.waitToGetProperty(selectors.clientDefaulter.firstObservation, 'value');
|
||||
|
||||
expect(result).toContain(expectedObservation);
|
||||
});
|
||||
|
||||
it('should not add empty observation', async() => {
|
||||
await page.waitToClick(selectors.clientDefaulter.allDefaulterCheckbox);
|
||||
|
||||
await page.waitToClick(selectors.clientDefaulter.addObservationButton);
|
||||
await page.write(selectors.clientDefaulter.observation, '');
|
||||
await page.waitToClick(selectors.clientDefaulter.saveButton);
|
||||
const message = await page.waitForSnackbar();
|
||||
|
||||
expect(message.text).toContain(`The message can't be empty`);
|
||||
});
|
||||
|
||||
it('should checked all defaulters', async() => {
|
||||
await page.loginAndModule('insurance', 'client');
|
||||
await page.accessToSection('client.defaulter');
|
||||
|
||||
await page.waitToClick(selectors.clientDefaulter.allDefaulterCheckbox);
|
||||
});
|
||||
|
||||
it('should add observation for all clients', async() => {
|
||||
await page.waitToClick(selectors.clientDefaulter.addObservationButton);
|
||||
await page.write(selectors.clientDefaulter.observation, 'My new observation');
|
||||
await page.waitToClick(selectors.clientDefaulter.saveButton);
|
||||
});
|
||||
});
|
|
@ -397,4 +397,4 @@
|
|||
"Incorrect delivery order alert on route": "Alerta de orden de entrega incorrecta en ruta: {{ route }} zona: {{ zone }}",
|
||||
"Ticket has been delivered out of order": "El ticket {{ticket}} {{{fullUrl}}} no ha sigo entregado en su orden.",
|
||||
"Price cannot be blank": "El precio no puede estar en blanco"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -43,6 +43,14 @@ module.exports = Self => {
|
|||
arg: 'postcode',
|
||||
type: 'string',
|
||||
},
|
||||
{
|
||||
arg: 'sageTransactionTypeFk',
|
||||
type: 'number',
|
||||
},
|
||||
{
|
||||
arg: 'sageTaxTypeFk',
|
||||
type: 'number',
|
||||
},
|
||||
{
|
||||
arg: 'provinceFk',
|
||||
type: 'number',
|
||||
|
@ -79,6 +87,10 @@ module.exports = Self => {
|
|||
return /^\d+$/.test(value)
|
||||
? {'c.id': {inq: value}}
|
||||
: {'c.name': {like: `%${value}%`}};
|
||||
case 'sageTaxTypeFk':
|
||||
return {'sti.CodigoIva': value};
|
||||
case 'sageTransactionTypeFk':
|
||||
return {'stt.CodigoTransaccion': value};
|
||||
case 'name':
|
||||
case 'salesPersonFk':
|
||||
case 'fi':
|
||||
|
|
|
@ -158,10 +158,12 @@ module.exports = Self => {
|
|||
a.provinceFk AS provinceAddressFk,
|
||||
p.name AS province,
|
||||
u.id AS salesPersonFk,
|
||||
u.name AS salesPerson
|
||||
u.name AS salesPerson,
|
||||
co.name AS country
|
||||
FROM client c
|
||||
LEFT JOIN account.user u ON u.id = c.salesPersonFk
|
||||
LEFT JOIN province p ON p.id = c.provinceFk
|
||||
LEFT JOIN country co ON co.id = c.countryFk
|
||||
JOIN address a ON a.clientFk = c.id
|
||||
`
|
||||
);
|
||||
|
|
|
@ -139,5 +139,23 @@
|
|||
},
|
||||
"Xdiario": {
|
||||
"dataSource": "vn"
|
||||
},
|
||||
"BusinessReasonEnd": {
|
||||
"dataSource": "vn"
|
||||
},
|
||||
"OccupationCode": {
|
||||
"dataSource": "vn"
|
||||
},
|
||||
"WorkerBusinessProfessionalCategory": {
|
||||
"dataSource": "vn"
|
||||
},
|
||||
"CalendarType": {
|
||||
"dataSource": "vn"
|
||||
},
|
||||
"WorkerBusinessType": {
|
||||
"dataSource": "vn"
|
||||
},
|
||||
"PayrollCategory": {
|
||||
"dataSource": "vn"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"name": "BusinessReasonEnd",
|
||||
"base": "VnModel",
|
||||
"options": {
|
||||
"mysql": {
|
||||
"table": "businessReasonEnd"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "number"
|
||||
},
|
||||
"reason": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -13,6 +13,63 @@
|
|||
},
|
||||
"workcenterFk" : {
|
||||
"type": "number"
|
||||
},
|
||||
"companyCodeFk" : {
|
||||
"type": "string"
|
||||
},
|
||||
"started" : {
|
||||
"type": "date"
|
||||
},
|
||||
"ended" : {
|
||||
"type": "date"
|
||||
},
|
||||
"workerBusiness" : {
|
||||
"type": "string"
|
||||
},
|
||||
"reasonEndFk" : {
|
||||
"type": "number"
|
||||
},
|
||||
"payedHolidays" : {
|
||||
"type": "number"
|
||||
},
|
||||
"occupationCodeFk" : {
|
||||
"type": "string"
|
||||
},
|
||||
"workerFk" : {
|
||||
"type": "number"
|
||||
},
|
||||
"notes" : {
|
||||
"type": "string"
|
||||
},
|
||||
"departmentFk": {
|
||||
"type": "string"
|
||||
},
|
||||
"workerBusinessProfessionalCategoryFk": {
|
||||
"type": "number"
|
||||
},
|
||||
"calendarTypeFk": {
|
||||
"type": "string"
|
||||
},
|
||||
"isHourlyLabor": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"rate": {
|
||||
"type": "number"
|
||||
},
|
||||
"workerBusinessCategoryFk": {
|
||||
"type": "number"
|
||||
},
|
||||
"workerBusinessTypeFk": {
|
||||
"type": "number"
|
||||
},
|
||||
"amount": {
|
||||
"type": "number"
|
||||
},
|
||||
"workerBusinessAgreementFk": {
|
||||
"type": "number"
|
||||
},
|
||||
"basicSalary": {
|
||||
"type": "number"
|
||||
}
|
||||
},
|
||||
"relations": {
|
||||
|
@ -25,6 +82,59 @@
|
|||
"type": "belongsTo",
|
||||
"model": "Department",
|
||||
"foreignKey": "departmentFk"
|
||||
},
|
||||
"workCenter": {
|
||||
"type": "belongsTo",
|
||||
"model": "WorkCenter",
|
||||
"foreignKey": "workcenterFk"
|
||||
},
|
||||
"companyCode": {
|
||||
"type": "belongsTo",
|
||||
"model": "Company",
|
||||
"foreignKey": "companyCodeFk",
|
||||
"primaryKey": "code"
|
||||
},
|
||||
"reasonEnd": {
|
||||
"type": "belongsTo",
|
||||
"model": "BusinessReasonEnd",
|
||||
"foreignKey": "reasonEndFk"
|
||||
},
|
||||
"occupationCode": {
|
||||
"type": "belongsTo",
|
||||
"model": "OccupationCode",
|
||||
"foreignKey":"occupationCodeFk",
|
||||
"primaryKey": "code"
|
||||
},
|
||||
"payrollCategory": {
|
||||
"type": "belongsTo",
|
||||
"model": "PayrollCategory",
|
||||
"foreignKey":"workerBusinessCategoryFk"
|
||||
},
|
||||
"workerBusinessProfessionalCategory": {
|
||||
"type": "belongsTo",
|
||||
"model": "WorkerBusinessProfessionalCategory",
|
||||
"foreignKey": "workerBusinessProfessionalCategoryFk"
|
||||
},
|
||||
"calendarType": {
|
||||
"type": "belongsTo",
|
||||
"model": "CalendarType",
|
||||
"foreignKey": "calendarTypeFk"
|
||||
},
|
||||
"workerBusinessCategory": {
|
||||
"type": "belongsTo",
|
||||
"model": "WorkerBusinessCategory",
|
||||
"foreignKey": "workerBusinessCategoryFk"
|
||||
},
|
||||
"workerBusinessType": {
|
||||
"type": "belongsTo",
|
||||
"model": "WorkerBusinessType",
|
||||
"foreignKey": "workerBusinessTypeFk"
|
||||
},
|
||||
"workerBusinessAgreement": {
|
||||
"type": "belongsTo",
|
||||
"model": "WorkerBusinessAgreement",
|
||||
"foreignKey": "workerBusinessAgreementFk"
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"name": "CalendarType",
|
||||
"base": "VnModel",
|
||||
"options": {
|
||||
"mysql": {
|
||||
"table": "calendarType"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "number"
|
||||
},
|
||||
"description": {
|
||||
"type": "string"
|
||||
},
|
||||
"hoursWeek": {
|
||||
"type": "number"
|
||||
},
|
||||
"isPartial": "number"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"name": "OccupationCode",
|
||||
"base": "VnModel",
|
||||
"options": {
|
||||
"mysql": {
|
||||
"table": "occupationCode"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"code": {
|
||||
"type": "string",
|
||||
"id": true
|
||||
},
|
||||
"name": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"name": "PayrollCategory",
|
||||
"base": "VnModel",
|
||||
"options": {
|
||||
"mysql": {
|
||||
"table": "payrollCategories"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "number"
|
||||
},
|
||||
"description": {
|
||||
"type": "string"
|
||||
},
|
||||
"rate": {
|
||||
"type": "number"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"name": "WorkerBusinessProfessionalCategory",
|
||||
"base": "VnModel",
|
||||
"options": {
|
||||
"mysql": {
|
||||
"table": "professionalCategory"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "number"
|
||||
},
|
||||
"description": {
|
||||
"type": "string"
|
||||
},
|
||||
"code": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
{
|
||||
"name": "WorkerBusinessAgreement",
|
||||
"base": "VnModel",
|
||||
"options": {
|
||||
"mysql": {
|
||||
"table": "workerBusinessAgreement"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "number"
|
||||
},
|
||||
"name": {
|
||||
"type": "string"
|
||||
},
|
||||
"monthHolidays": {
|
||||
"type": "number"
|
||||
},
|
||||
"yearsHours": {
|
||||
"type": "number"
|
||||
},
|
||||
"started": {
|
||||
"type": "date"
|
||||
},
|
||||
"ended": {
|
||||
"type": "date"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
{
|
||||
"name": "WorkerBusinessType",
|
||||
"base": "VnModel",
|
||||
"options": {
|
||||
"mysql": {
|
||||
"table": "workerBusinessType"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "number",
|
||||
"id": true
|
||||
},
|
||||
"name": {
|
||||
"type": "string"
|
||||
},
|
||||
"isFullTime": {
|
||||
"type": "number"
|
||||
},
|
||||
"isPermanent": {
|
||||
"type": "number"
|
||||
},
|
||||
"hasHolidayEntitlement": {
|
||||
"type": "number"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,200 +1,2 @@
|
|||
<vn-crud-model
|
||||
vn-id="model"
|
||||
url="Defaulters/filter"
|
||||
filter="::$ctrl.filter"
|
||||
limit="20"
|
||||
order="amount DESC"
|
||||
data="$ctrl.defaulters"
|
||||
on-data-change="$ctrl.reCheck()"
|
||||
auto-load="true">
|
||||
</vn-crud-model>
|
||||
<vn-portal slot="topbar">
|
||||
<vn-searchbar
|
||||
vn-focus
|
||||
placeholder="Search client"
|
||||
info="Search client by id or name"
|
||||
auto-state="false"
|
||||
model="model">
|
||||
</vn-searchbar>
|
||||
</vn-portal>
|
||||
<vn-card>
|
||||
<smart-table
|
||||
model="model"
|
||||
options="$ctrl.smartTableOptions"
|
||||
expr-builder="$ctrl.exprBuilder(param, value)">
|
||||
<slot-actions>
|
||||
<div>
|
||||
<div class="totalBox" style="text-align: center;">
|
||||
<h6 translate>Total</h6>
|
||||
<vn-label-value
|
||||
label="Balance due"
|
||||
value="{{$ctrl.balanceDueTotal | currency: 'EUR': 2}}">
|
||||
</vn-label-value>
|
||||
</div>
|
||||
</div>
|
||||
<div class="vn-pa-md">
|
||||
<vn-button
|
||||
disabled="$ctrl.checked.length == 0"
|
||||
ng-click="notesDialog.show()"
|
||||
name="notesDialog"
|
||||
vn-tooltip="Add observation"
|
||||
icon="icon-notes">
|
||||
</vn-button>
|
||||
</div>
|
||||
</slot-actions>
|
||||
<slot-table>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th shrink>
|
||||
<vn-multi-check
|
||||
model="model">
|
||||
</vn-multi-check>
|
||||
</th>
|
||||
<th field="clientFk">
|
||||
<span translate>Client</span>
|
||||
</th>
|
||||
<th field="isWorker">
|
||||
<span translate>Es trabajador</span>
|
||||
</th>
|
||||
<th field="salesPersonFk">
|
||||
<span translate>Comercial</span>
|
||||
</th>
|
||||
<th field="countryFk">
|
||||
<span translate>Country</span>
|
||||
</th>
|
||||
<th field="payMethod"
|
||||
vn-tooltip="Pay Method">
|
||||
<span translate>P.Method</span>
|
||||
</th>
|
||||
<th
|
||||
field="amount"
|
||||
vn-tooltip="Balance due">
|
||||
<span translate>Balance D.</span>
|
||||
</th>
|
||||
<th
|
||||
field="workerFk"
|
||||
vn-tooltip="Worker who made the last observation">
|
||||
<span translate>Author</span>
|
||||
</th>
|
||||
<th field="observation" expand>
|
||||
<span translate>Last observation</span>
|
||||
</th>
|
||||
<th
|
||||
vn-tooltip="Last observation date"
|
||||
field="created">
|
||||
<span translate>L. O. Date</span>
|
||||
</th>
|
||||
<th
|
||||
vn-tooltip="Credit insurance"
|
||||
field="creditInsurance"
|
||||
shrink>
|
||||
<span translate>Credit I.</span>
|
||||
</th>
|
||||
<th field="defaulterSinced">
|
||||
<span translate>From</span>
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr ng-repeat="defaulter in $ctrl.defaulters">
|
||||
<td shrink>
|
||||
<vn-check
|
||||
ng-model="defaulter.checked"
|
||||
on-change="$ctrl.saveChecked(defaulter.clientFk)"
|
||||
vn-click-stop>
|
||||
</vn-check>
|
||||
</td>
|
||||
<td title="{{::defaulter.clientName}}">
|
||||
<span
|
||||
vn-click-stop="clientDescriptor.show($event, defaulter.clientFk)"
|
||||
title ="{{::defaulter.clientName}}"
|
||||
class="link">
|
||||
{{::defaulter.clientName}}
|
||||
</span>
|
||||
</td>
|
||||
<td>
|
||||
<vn-check
|
||||
ng-model="defaulter.isWorker"
|
||||
disabled="true">
|
||||
</vn-check>
|
||||
</td>
|
||||
<td>
|
||||
<span
|
||||
title="{{::defaulter.salesPersonName}}"
|
||||
vn-click-stop="workerDescriptor.show($event, defaulter.salesPersonFk)"
|
||||
class="link">
|
||||
{{::defaulter.salesPersonName | dashIfEmpty}}
|
||||
</span>
|
||||
</td>
|
||||
<td>
|
||||
{{::defaulter.country}}
|
||||
</td>
|
||||
<td>
|
||||
{{::defaulter.payMethod}}
|
||||
</td>
|
||||
<td>{{::defaulter.amount | currency: 'EUR': 2}}</td>
|
||||
<td>
|
||||
<span
|
||||
title="{{::defaulter.workerName}}"
|
||||
vn-click-stop="workerDescriptor.show($event, defaulter.workerFk)"
|
||||
class="link">
|
||||
{{::defaulter.workerName | dashIfEmpty}}
|
||||
</span>
|
||||
</td>
|
||||
<td expand>
|
||||
<vn-textarea
|
||||
vn-three
|
||||
disabled="true"
|
||||
ng-model="defaulter.observation">
|
||||
</vn-textarea>
|
||||
</td>
|
||||
<td shrink-date>
|
||||
<span class="chip {{::$ctrl.chipColor(defaulter.created)}}">
|
||||
{{::defaulter.created | date: 'dd/MM/yyyy'}}
|
||||
</span>
|
||||
</td>
|
||||
<td shrink>{{::defaulter.creditInsurance | currency: 'EUR': 2}}</td>
|
||||
<td shrink-date>{{::defaulter.defaulterSinced | date: 'dd/MM/yyyy'}}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</slot-table>
|
||||
</smart-table>
|
||||
</vn-card>
|
||||
<vn-client-descriptor-popover
|
||||
vn-id="client-descriptor">
|
||||
</vn-client-descriptor-popover>
|
||||
<vn-worker-descriptor-popover
|
||||
vn-id="worker-descriptor">
|
||||
</vn-worker-descriptor-popover>
|
||||
<vn-popup vn-id="dialog-summary-client">
|
||||
<vn-client-summary
|
||||
client="$ctrl.clientSelected">
|
||||
</vn-client-summary>
|
||||
</vn-popup>
|
||||
|
||||
<!-- Dialog of add notes button -->
|
||||
<vn-dialog
|
||||
vn-id="notesDialog"
|
||||
on-accept="$ctrl.onResponse()">
|
||||
<tpl-body>
|
||||
<section class="SMSDialog">
|
||||
<h5 class="vn-py-sm">{{$ctrl.$t('Add observation to all selected clients', {total: $ctrl.checked.length})}}</h5>
|
||||
<vn-horizontal>
|
||||
<vn-textarea vn-one
|
||||
vn-id="message"
|
||||
label="Message"
|
||||
ng-model="$ctrl.defaulter.observation"
|
||||
rows="3"
|
||||
required="true"
|
||||
rule>
|
||||
</vn-textarea>
|
||||
</vn-horizontal>
|
||||
</section>
|
||||
</tpl-body>
|
||||
<tpl-buttons>
|
||||
<input type="button" response="cancel" translate-attr="{value: 'Cancel'}"/>
|
||||
<button response="accept" translate>Save</button>
|
||||
</tpl-buttons>
|
||||
</vn-dialog>
|
||||
|
|
|
@ -1,199 +1,13 @@
|
|||
import ngModule from '../module';
|
||||
import Section from 'salix/components/section';
|
||||
import UserError from 'core/lib/user-error';
|
||||
|
||||
export default class Controller extends Section {
|
||||
constructor($element, $) {
|
||||
super($element, $);
|
||||
this.defaulter = {};
|
||||
this.defaulters = [];
|
||||
this.checkedDefaulers = [];
|
||||
|
||||
this.smartTableOptions = {
|
||||
activeButtons: {
|
||||
search: true
|
||||
},
|
||||
columns: [
|
||||
{
|
||||
field: 'clientFk',
|
||||
autocomplete: {
|
||||
url: 'Clients',
|
||||
showField: 'name',
|
||||
valueField: 'id'
|
||||
}
|
||||
}, {
|
||||
field: 'salesPersonFk',
|
||||
autocomplete: {
|
||||
url: 'Workers/activeWithInheritedRole',
|
||||
where: `{role: 'salesPerson'}`,
|
||||
searchFunction: '{firstName: $search}',
|
||||
showField: 'name',
|
||||
valueField: 'id',
|
||||
}
|
||||
}, {
|
||||
field: 'countryFk',
|
||||
autocomplete: {
|
||||
url: 'Countries',
|
||||
showField: 'country',
|
||||
valueField: 'id'
|
||||
}
|
||||
}, {
|
||||
field: 'payMethodFk',
|
||||
autocomplete: {
|
||||
showField: 'name',
|
||||
valueField: 'id'
|
||||
}
|
||||
},
|
||||
{
|
||||
field: 'workerFk',
|
||||
autocomplete: {
|
||||
url: 'Workers/activeWithInheritedRole',
|
||||
searchFunction: '{firstName: $search}',
|
||||
showField: 'name',
|
||||
valueField: 'id',
|
||||
}
|
||||
},
|
||||
{
|
||||
field: 'observation',
|
||||
searchable: false
|
||||
},
|
||||
{
|
||||
field: 'isWorker',
|
||||
checkbox: true,
|
||||
|
||||
},
|
||||
{
|
||||
field: 'created',
|
||||
datepicker: true
|
||||
},
|
||||
{
|
||||
field: 'defaulterSinced',
|
||||
datepicker: true
|
||||
}
|
||||
]
|
||||
};
|
||||
|
||||
this.getBalanceDueTotal();
|
||||
}
|
||||
|
||||
set defaulters(value) {
|
||||
if (!value || !value.length) return;
|
||||
this._defaulters = value;
|
||||
}
|
||||
|
||||
get defaulters() {
|
||||
return this._defaulters;
|
||||
}
|
||||
|
||||
get checked() {
|
||||
const clients = this.$.model.data || [];
|
||||
const checkedLines = [];
|
||||
for (let defaulter of clients) {
|
||||
if (defaulter.checked)
|
||||
checkedLines.push(defaulter);
|
||||
}
|
||||
|
||||
return checkedLines;
|
||||
}
|
||||
|
||||
saveChecked(clientId) {
|
||||
this.checkedDefaulers = this.checkedDefaulers.includes(clientId) ?
|
||||
this.checkedDefaulers.filter(id => id !== clientId) : [...this.checkedDefaulers, clientId];
|
||||
}
|
||||
|
||||
reCheck() {
|
||||
if (!this.$.model.data || !this.checkedDefaulers.length) return;
|
||||
|
||||
this.$.model.data.forEach(defaulter => {
|
||||
defaulter.checked = this.checkedDefaulers.includes(defaulter.clientFk);
|
||||
});
|
||||
}
|
||||
|
||||
getBalanceDueTotal() {
|
||||
this.$http.get('Defaulters/filter')
|
||||
.then(res => {
|
||||
if (!res.data) return 0;
|
||||
|
||||
this.balanceDueTotal = res.data.reduce(
|
||||
(accumulator, currentValue) => {
|
||||
return accumulator + (currentValue['amount'] || 0);
|
||||
}, 0);
|
||||
});
|
||||
}
|
||||
|
||||
chipColor(date) {
|
||||
const day = 24 * 60 * 60 * 1000;
|
||||
const today = Date.vnNew();
|
||||
today.setHours(0, 0, 0, 0);
|
||||
|
||||
const observationShipped = new Date(date);
|
||||
observationShipped.setHours(0, 0, 0, 0);
|
||||
|
||||
const difference = today - observationShipped;
|
||||
|
||||
if (difference > (day * 20))
|
||||
return 'alert';
|
||||
if (difference > (day * 10))
|
||||
return 'warning';
|
||||
}
|
||||
|
||||
onResponse() {
|
||||
if (!this.defaulter.observation)
|
||||
throw new UserError(`The message can't be empty`);
|
||||
|
||||
const params = [];
|
||||
for (let defaulter of this.checked) {
|
||||
params.push({
|
||||
text: this.defaulter.observation,
|
||||
clientFk: defaulter.clientFk
|
||||
});
|
||||
}
|
||||
|
||||
this.$http.post(`ClientObservations`, params) .then(() => {
|
||||
this.vnApp.showSuccess(this.$t('Observation saved!'));
|
||||
this.sendMail();
|
||||
this.$state.reload();
|
||||
});
|
||||
}
|
||||
|
||||
sendMail() {
|
||||
const params = {
|
||||
defaulters: this.checked,
|
||||
observation: this.defaulter.observation,
|
||||
};
|
||||
this.$http.post(`Defaulters/observationEmail`, params);
|
||||
}
|
||||
|
||||
exprBuilder(param, value) {
|
||||
switch (param) {
|
||||
case 'isWorker':
|
||||
return {isWorker: value};
|
||||
case 'creditInsurance':
|
||||
case 'amount':
|
||||
case 'clientFk':
|
||||
case 'workerFk':
|
||||
case 'countryFk':
|
||||
case 'payMethod':
|
||||
case 'salesPersonFk':
|
||||
return {[`d.${param}`]: value};
|
||||
case 'created':
|
||||
return {'d.created': {
|
||||
between: this.dateRange(value)}
|
||||
};
|
||||
case 'defaulterSinced':
|
||||
return {'d.defaulterSinced': {
|
||||
between: this.dateRange(value)}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
dateRange(value) {
|
||||
const minHour = new Date(value);
|
||||
minHour.setHours(0, 0, 0, 0);
|
||||
const maxHour = new Date(value);
|
||||
maxHour.setHours(23, 59, 59, 59);
|
||||
|
||||
return [minHour, maxHour];
|
||||
async $onInit() {
|
||||
this.$state.go('customer.defaulter', {id: this.$params.id});
|
||||
window.location.href = await this.vnApp.getUrl(`customer/defaulter`);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,179 +0,0 @@
|
|||
import './index';
|
||||
import crudModel from 'core/mocks/crud-model';
|
||||
|
||||
describe('client defaulter', () => {
|
||||
describe('Component vnClientDefaulter', () => {
|
||||
let controller;
|
||||
let $httpBackend;
|
||||
|
||||
beforeEach(ngModule('client'));
|
||||
|
||||
beforeEach(inject(($componentController, _$httpBackend_) => {
|
||||
$httpBackend = _$httpBackend_;
|
||||
const $element = angular.element('<vn-client-defaulter></vn-client-defaulter>');
|
||||
controller = $componentController('vnClientDefaulter', {$element});
|
||||
controller.$.model = crudModel;
|
||||
controller.$.model.data = [
|
||||
{clientFk: 1101, amount: 125},
|
||||
{clientFk: 1102, amount: 500},
|
||||
{clientFk: 1103, amount: 250}
|
||||
];
|
||||
}));
|
||||
|
||||
describe('checked() getter', () => {
|
||||
it('should return the checked lines', () => {
|
||||
const data = controller.$.model.data;
|
||||
data[1].checked = true;
|
||||
data[2].checked = true;
|
||||
|
||||
const checkedRows = controller.checked;
|
||||
|
||||
const firstCheckedRow = checkedRows[0];
|
||||
const secondCheckedRow = checkedRows[1];
|
||||
|
||||
expect(firstCheckedRow.clientFk).toEqual(1102);
|
||||
expect(secondCheckedRow.clientFk).toEqual(1103);
|
||||
});
|
||||
});
|
||||
|
||||
describe('chipColor()', () => {
|
||||
it('should return undefined when the date is the present', () => {
|
||||
let today = Date.vnNew();
|
||||
let result = controller.chipColor(today);
|
||||
|
||||
expect(result).toEqual(undefined);
|
||||
});
|
||||
|
||||
it('should return warning when the date is 10 days in the past', () => {
|
||||
let pastDate = Date.vnNew();
|
||||
pastDate = pastDate.setDate(pastDate.getDate() - 11);
|
||||
let result = controller.chipColor(pastDate);
|
||||
|
||||
expect(result).toEqual('warning');
|
||||
});
|
||||
|
||||
it('should return alert when the date is 20 days in the past', () => {
|
||||
let pastDate = Date.vnNew();
|
||||
pastDate = pastDate.setDate(pastDate.getDate() - 21);
|
||||
let result = controller.chipColor(pastDate);
|
||||
|
||||
expect(result).toEqual('alert');
|
||||
});
|
||||
});
|
||||
|
||||
describe('onResponse()', () => {
|
||||
it('should return error for empty message', () => {
|
||||
let error;
|
||||
try {
|
||||
controller.onResponse();
|
||||
} catch (e) {
|
||||
error = e;
|
||||
}
|
||||
|
||||
expect(error).toBeDefined();
|
||||
expect(error.message).toBe(`The message can't be empty`);
|
||||
});
|
||||
|
||||
it('should return saved message', () => {
|
||||
const data = controller.$.model.data;
|
||||
data[1].checked = true;
|
||||
controller.defaulter = {observation: 'My new observation'};
|
||||
|
||||
const params = [{text: controller.defaulter.observation, clientFk: data[1].clientFk}];
|
||||
|
||||
jest.spyOn(controller.vnApp, 'showSuccess');
|
||||
$httpBackend.expect('GET', `Defaulters/filter`).respond(200);
|
||||
$httpBackend.expect('POST', `ClientObservations`, params).respond(200, params);
|
||||
$httpBackend.expect('POST', `Defaulters/observationEmail`).respond(200);
|
||||
|
||||
controller.onResponse();
|
||||
$httpBackend.flush();
|
||||
|
||||
expect(controller.vnApp.showSuccess).toHaveBeenCalledWith('Observation saved!');
|
||||
});
|
||||
});
|
||||
|
||||
describe('exprBuilder()', () => {
|
||||
it('should search by sales person', () => {
|
||||
const expr = controller.exprBuilder('salesPersonFk', '5');
|
||||
|
||||
expect(expr).toEqual({'d.salesPersonFk': '5'});
|
||||
});
|
||||
|
||||
it('should search by client', () => {
|
||||
const expr = controller.exprBuilder('clientFk', '5');
|
||||
|
||||
expect(expr).toEqual({'d.clientFk': '5'});
|
||||
});
|
||||
});
|
||||
|
||||
describe('getBalanceDueTotal()', () => {
|
||||
it('should return balance due total', () => {
|
||||
const defaulters = controller.$.model.data;
|
||||
$httpBackend.when('GET', `Defaulters/filter`).respond(defaulters);
|
||||
|
||||
controller.getBalanceDueTotal();
|
||||
$httpBackend.flush();
|
||||
|
||||
expect(controller.balanceDueTotal).toEqual(875);
|
||||
});
|
||||
});
|
||||
|
||||
describe('dateRange()', () => {
|
||||
it('should return two dates with the hours at the start and end of the given date', () => {
|
||||
const now = Date.vnNew();
|
||||
|
||||
const today = now.getDate();
|
||||
|
||||
const dateRange = controller.dateRange(now);
|
||||
const start = dateRange[0].toString();
|
||||
const end = dateRange[1].toString();
|
||||
|
||||
expect(start).toContain(today);
|
||||
expect(start).toContain('00:00:00');
|
||||
|
||||
expect(end).toContain(today);
|
||||
expect(end).toContain('23:59:59');
|
||||
});
|
||||
});
|
||||
|
||||
describe('reCheck()', () => {
|
||||
it(`should recheck buys`, () => {
|
||||
controller.$.model.data = [
|
||||
{checked: false, clientFk: 1},
|
||||
{checked: false, clientFk: 2},
|
||||
{checked: false, clientFk: 3},
|
||||
{checked: false, clientFk: 4},
|
||||
];
|
||||
controller.checkedDefaulers = [1, 2];
|
||||
|
||||
controller.reCheck();
|
||||
|
||||
expect(controller.$.model.data[0].checked).toEqual(true);
|
||||
expect(controller.$.model.data[1].checked).toEqual(true);
|
||||
expect(controller.$.model.data[2].checked).toEqual(false);
|
||||
expect(controller.$.model.data[3].checked).toEqual(false);
|
||||
});
|
||||
});
|
||||
|
||||
describe('saveChecked()', () => {
|
||||
it(`should check buy`, () => {
|
||||
const buyCheck = 3;
|
||||
controller.checkedDefaulers = [1, 2];
|
||||
|
||||
controller.saveChecked(buyCheck);
|
||||
|
||||
expect(controller.checkedDefaulers[2]).toEqual(buyCheck);
|
||||
});
|
||||
|
||||
it(`should uncheck buy`, () => {
|
||||
const buyUncheck = 3;
|
||||
controller.checkedDefaulers = [1, 2, 3];
|
||||
|
||||
controller.saveChecked(buyUncheck);
|
||||
|
||||
expect(controller.checkedDefaulers[2]).toEqual(undefined);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
|
@ -1,14 +0,0 @@
|
|||
Add observation: Añadir observación
|
||||
Add observation to all selected clients: Añadir observación a {{total}} cliente(s) seleccionado(s)
|
||||
Balance D.: Saldo V.
|
||||
Credit I.: Crédito A.
|
||||
Last observation: Última observación
|
||||
L. O. Date: Fecha Ú. O.
|
||||
Last observation date: Fecha última observación
|
||||
Search client: Buscar clientes
|
||||
Worker who made the last observation: Trabajador que ha realizado la última observación
|
||||
Email sended!: Email enviado!
|
||||
Observation saved!: Observación añadida!
|
||||
P.Method: F.Pago
|
||||
Pay Method: Forma de Pago
|
||||
Country: Pais
|
|
@ -1,6 +1,7 @@
|
|||
module.exports = Self => {
|
||||
Self.remoteMethodCtx('transfer', {
|
||||
description: 'Transfer merchandise from one entry to the next day',
|
||||
accessType: 'WRITE',
|
||||
accepts: [
|
||||
{
|
||||
arg: 'id',
|
||||
|
|
|
@ -10,4 +10,27 @@ module.exports = Self => {
|
|||
return new UserError(`Tag value cannot be blank`);
|
||||
return err;
|
||||
});
|
||||
|
||||
Self.observe('before save', async ctx => {
|
||||
let tagFk;
|
||||
let value;
|
||||
|
||||
if (ctx.isNewInstance) {
|
||||
tagFk = ctx.instance.tagFk;
|
||||
value = ctx.instance.value;
|
||||
} else {
|
||||
tagFk = ctx.currentInstance.tagFk;
|
||||
value = ctx.data.value;
|
||||
}
|
||||
const models = Self.app.models;
|
||||
const validTag = await models.Tag.findById(tagFk);
|
||||
|
||||
if (validTag.validationRegex) {
|
||||
const regexString = validTag.validationRegex.replace(/\\\\/g, '\\');
|
||||
const validExpresion = new RegExp(regexString);
|
||||
|
||||
if (value && !validExpresion.test(value))
|
||||
throw new UserError('The value must be a number or a range of numbers');
|
||||
}
|
||||
});
|
||||
};
|
||||
|
|
|
@ -30,6 +30,9 @@
|
|||
"mysql": {
|
||||
"columnName": "isQuantitatif"
|
||||
}
|
||||
},
|
||||
"validationRegex": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"acls": [
|
||||
|
|
|
@ -18,7 +18,7 @@ describe('AgencyTerm filter()', () => {
|
|||
const firstAgencyTerm = agencyTerms[0];
|
||||
|
||||
expect(firstAgencyTerm.routeFk).toEqual(1);
|
||||
expect(agencyTerms.length).toEqual(5);
|
||||
expect(agencyTerms.length).toEqual(7);
|
||||
|
||||
await tx.rollback();
|
||||
} catch (e) {
|
||||
|
@ -49,7 +49,7 @@ describe('AgencyTerm filter()', () => {
|
|||
|
||||
let result = await app.models.AgencyTerm.filter(ctx);
|
||||
|
||||
expect(result.length).toEqual(2);
|
||||
expect(result.length).toEqual(4);
|
||||
});
|
||||
|
||||
it('should return results matching "from" and "to"', async() => {
|
||||
|
@ -72,7 +72,7 @@ describe('AgencyTerm filter()', () => {
|
|||
|
||||
const results = await models.AgencyTerm.filter(ctx, options);
|
||||
|
||||
expect(results.length).toBe(5);
|
||||
expect(results.length).toBe(7);
|
||||
|
||||
await tx.rollback();
|
||||
} catch (e) {
|
||||
|
@ -90,7 +90,7 @@ describe('AgencyTerm filter()', () => {
|
|||
|
||||
let result = await app.models.AgencyTerm.filter(ctx);
|
||||
|
||||
expect(result.length).toEqual(1);
|
||||
expect(result.length).toEqual(2);
|
||||
expect(result[0].routeFk).toEqual(1);
|
||||
});
|
||||
|
||||
|
@ -103,7 +103,7 @@ describe('AgencyTerm filter()', () => {
|
|||
|
||||
let result = await app.models.AgencyTerm.filter(ctx);
|
||||
|
||||
expect(result.length).toEqual(1);
|
||||
expect(result.length).toEqual(2);
|
||||
expect(result[0].routeFk).toEqual(2);
|
||||
});
|
||||
});
|
||||
|
|
|
@ -1,109 +0,0 @@
|
|||
const app = require('vn-loopback/server/server');
|
||||
const models = require('vn-loopback/server/server').models;
|
||||
|
||||
describe('AgencyTerm filter()', () => {
|
||||
const authUserId = 9;
|
||||
const today = Date.vnNew();
|
||||
today.setHours(2, 0, 0, 0);
|
||||
|
||||
it('should return all results matching the filter', async() => {
|
||||
const tx = await models.AgencyTerm.beginTransaction({});
|
||||
|
||||
try {
|
||||
const options = {transaction: tx};
|
||||
const filter = {};
|
||||
const ctx = {req: {accessToken: {userId: authUserId}}};
|
||||
|
||||
const agencyTerms = await models.AgencyTerm.filter(ctx, filter, options);
|
||||
const firstAgencyTerm = agencyTerms[0];
|
||||
|
||||
expect(firstAgencyTerm.routeFk).toEqual(1);
|
||||
expect(agencyTerms.length).toEqual(5);
|
||||
|
||||
await tx.rollback();
|
||||
} catch (e) {
|
||||
await tx.rollback();
|
||||
throw e;
|
||||
}
|
||||
});
|
||||
|
||||
it('should return results matching "search" searching by integer', async() => {
|
||||
let ctx = {
|
||||
args: {
|
||||
search: 1,
|
||||
}
|
||||
};
|
||||
|
||||
let result = await app.models.AgencyTerm.filter(ctx);
|
||||
|
||||
expect(result.length).toEqual(1);
|
||||
expect(result[0].routeFk).toEqual(1);
|
||||
});
|
||||
|
||||
it('should return results matching "search" searching by string', async() => {
|
||||
let ctx = {
|
||||
args: {
|
||||
search: 'Plants SL',
|
||||
}
|
||||
};
|
||||
|
||||
let result = await app.models.AgencyTerm.filter(ctx);
|
||||
|
||||
expect(result.length).toEqual(2);
|
||||
});
|
||||
|
||||
it('should return results matching "from" and "to"', async() => {
|
||||
const tx = await models.Buy.beginTransaction({});
|
||||
const options = {transaction: tx};
|
||||
|
||||
try {
|
||||
const from = Date.vnNew();
|
||||
from.setHours(0, 0, 0, 0);
|
||||
|
||||
const to = Date.vnNew();
|
||||
to.setHours(23, 59, 59, 999);
|
||||
|
||||
const ctx = {
|
||||
args: {
|
||||
from: from,
|
||||
to: to
|
||||
}
|
||||
};
|
||||
|
||||
const results = await models.AgencyTerm.filter(ctx, options);
|
||||
|
||||
expect(results.length).toBe(5);
|
||||
|
||||
await tx.rollback();
|
||||
} catch (e) {
|
||||
await tx.rollback();
|
||||
throw e;
|
||||
}
|
||||
});
|
||||
|
||||
it('should return results matching "agencyModeFk"', async() => {
|
||||
let ctx = {
|
||||
args: {
|
||||
agencyModeFk: 1,
|
||||
}
|
||||
};
|
||||
|
||||
let result = await app.models.AgencyTerm.filter(ctx);
|
||||
|
||||
expect(result.length).toEqual(1);
|
||||
expect(result[0].routeFk).toEqual(1);
|
||||
});
|
||||
|
||||
it('should return results matching "agencyFk"', async() => {
|
||||
let ctx = {
|
||||
args: {
|
||||
agencyFk: 2,
|
||||
}
|
||||
};
|
||||
|
||||
let result = await app.models.AgencyTerm.filter(ctx);
|
||||
|
||||
expect(result.length).toEqual(1);
|
||||
expect(result[0].routeFk).toEqual(2);
|
||||
});
|
||||
});
|
|
@ -87,6 +87,8 @@ module.exports = Self => {
|
|||
|
||||
Self.filter = async(ctx, filter) => {
|
||||
let conn = Self.dataSource.connector;
|
||||
const userId = ctx.req.accessToken.userId;
|
||||
const models = Self.app.models;
|
||||
|
||||
let where = buildFilter(ctx.args, (param, value) => {
|
||||
switch (param) {
|
||||
|
@ -110,6 +112,13 @@ module.exports = Self => {
|
|||
|
||||
filter = mergeFilters(filter, {where});
|
||||
|
||||
const worker = await models.Worker.findById(userId, {fields: ['isFreelance']});
|
||||
const getMyRoute = await models.ACL.checkAccessAcl(ctx, 'Route', 'getRouteByAgency', 'WRITE');
|
||||
|
||||
if (userId && getMyRoute && worker.isFreelance) {
|
||||
if (!filter.where) filter.where = {};
|
||||
filter.where[`workerFk`] = userId;
|
||||
}
|
||||
let stmts = [];
|
||||
let stmt;
|
||||
|
||||
|
|
|
@ -8,14 +8,32 @@ describe('Route filter()', () => {
|
|||
it('should return the routes matching "search"', async() => {
|
||||
const ctx = {
|
||||
args: {
|
||||
search: 1,
|
||||
search: 5,
|
||||
},
|
||||
req: {
|
||||
accessToken: {
|
||||
userId: 9
|
||||
}
|
||||
}
|
||||
};
|
||||
const result = await app.models.Route.filter(ctx);
|
||||
|
||||
expect(result.length).toEqual(1);
|
||||
expect(result[0].id).toEqual(5);
|
||||
});
|
||||
|
||||
it('should return all results matching the filter', async() => {
|
||||
const ctx = {
|
||||
req: {
|
||||
accessToken: {
|
||||
userId: 133
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
const result = await app.models.Route.filter(ctx);
|
||||
|
||||
expect(result.length).toEqual(1);
|
||||
expect(result[0].id).toEqual(1);
|
||||
expect(result.length).toEqual(3);
|
||||
});
|
||||
|
||||
it('should return results matching "from" and "to"', async() => {
|
||||
|
@ -32,12 +50,16 @@ describe('Route filter()', () => {
|
|||
args: {
|
||||
from: from,
|
||||
to: to
|
||||
},
|
||||
req: {
|
||||
accessToken: {
|
||||
userId: 9
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
const results = await models.Route.filter(ctx, options);
|
||||
|
||||
expect(results.length).toBe(7);
|
||||
expect(results.length).toBe(9);
|
||||
|
||||
await tx.rollback();
|
||||
} catch (e) {
|
||||
|
@ -50,6 +72,11 @@ describe('Route filter()', () => {
|
|||
const ctx = {
|
||||
args: {
|
||||
m3: 0.1,
|
||||
},
|
||||
req: {
|
||||
accessToken: {
|
||||
userId: 9
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -62,6 +89,11 @@ describe('Route filter()', () => {
|
|||
const ctx = {
|
||||
args: {
|
||||
description: 'third route',
|
||||
},
|
||||
req: {
|
||||
accessToken: {
|
||||
userId: 9
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -74,24 +106,33 @@ describe('Route filter()', () => {
|
|||
const ctx = {
|
||||
args: {
|
||||
workerFk: 56,
|
||||
},
|
||||
req: {
|
||||
accessToken: {
|
||||
userId: 9
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
const result = await app.models.Route.filter(ctx);
|
||||
|
||||
expect(result.length).toEqual(5);
|
||||
expect(result.length).toEqual(4);
|
||||
});
|
||||
|
||||
it('should return the routes matching "warehouseFk"', async() => {
|
||||
const ctx = {
|
||||
args: {
|
||||
warehouseFk: 1,
|
||||
},
|
||||
req: {
|
||||
accessToken: {
|
||||
userId: 9
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
let result = await app.models.Route.filter(ctx);
|
||||
|
||||
expect(result.length).toEqual(7);
|
||||
expect(result.length).toEqual(9);
|
||||
|
||||
ctx.args.warehouseFk = 2;
|
||||
|
||||
|
@ -104,9 +145,13 @@ describe('Route filter()', () => {
|
|||
const ctx = {
|
||||
args: {
|
||||
vehicleFk: 2,
|
||||
},
|
||||
req: {
|
||||
accessToken: {
|
||||
userId: 9
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
const result = await app.models.Route.filter(ctx);
|
||||
|
||||
expect(result.length).toEqual(1);
|
||||
|
@ -116,6 +161,11 @@ describe('Route filter()', () => {
|
|||
const ctx = {
|
||||
args: {
|
||||
agencyModeFk: 7,
|
||||
},
|
||||
req: {
|
||||
accessToken: {
|
||||
userId: 9
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@ describe('route summary()', () => {
|
|||
});
|
||||
|
||||
it(`should return a summary object containing it's worker`, async() => {
|
||||
const result = await app.models.Route.summary(1);
|
||||
const result = await app.models.Route.summary(2);
|
||||
const worker = result.route.worker().user();
|
||||
|
||||
expect(worker.name).toEqual('delivery');
|
||||
|
|
|
@ -0,0 +1,100 @@
|
|||
|
||||
const ParameterizedSQL = require('loopback-connector').ParameterizedSQL;
|
||||
const {buildFilter, mergeFilters} = require('vn-loopback/util/filter');
|
||||
module.exports = Self => {
|
||||
Self.remoteMethodCtx('receipts', {
|
||||
description: 'Find all suppliers matched by the filter',
|
||||
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: 'supplierId',
|
||||
type: 'number',
|
||||
description: 'The supplier id',
|
||||
},
|
||||
{
|
||||
arg: 'companyId',
|
||||
type: 'number',
|
||||
description: 'The company id',
|
||||
},
|
||||
{
|
||||
arg: 'currencyFk',
|
||||
type: 'number',
|
||||
description: 'The currency',
|
||||
default: 1,
|
||||
},
|
||||
{
|
||||
arg: 'bankFk',
|
||||
type: 'number',
|
||||
description: 'The bank',
|
||||
default: 1,
|
||||
},
|
||||
{
|
||||
arg: 'orderBy',
|
||||
type: 'string',
|
||||
description: 'The supplier fiscal id',
|
||||
enum: ['issued', ' bookEntried', ' booked', ' dueDate'],
|
||||
},
|
||||
{
|
||||
arg: 'isConciliated',
|
||||
default: false,
|
||||
type: 'boolean',
|
||||
},
|
||||
],
|
||||
returns: {
|
||||
type: ['object'],
|
||||
root: true
|
||||
},
|
||||
http: {
|
||||
path: `/receipts`,
|
||||
verb: 'GET'
|
||||
}
|
||||
});
|
||||
|
||||
Self.receipts = async(ctx, filter, options) => {
|
||||
const conn = Self.dataSource.connector;
|
||||
const myOptions = {userId: ctx.req.accessToken.userId};
|
||||
const args = ctx.args;
|
||||
|
||||
if (typeof options == 'object')
|
||||
Object.assign(myOptions, options);
|
||||
|
||||
const where = buildFilter(ctx.args, (param, value) => {
|
||||
switch (param) {
|
||||
case 'bankFk':
|
||||
return {[param]: value};
|
||||
}
|
||||
});
|
||||
|
||||
let stmts = [];
|
||||
|
||||
stmts.push(new ParameterizedSQL('CALL vn.supplier_statementWithEntries(?,?,?,?,?,?)', [
|
||||
args.supplierId,
|
||||
args.currencyFk,
|
||||
args.companyId,
|
||||
args.orderBy ?? 'issued',
|
||||
args.isConciliated ?? false,
|
||||
false
|
||||
]));
|
||||
|
||||
const stmt = new ParameterizedSQL(`
|
||||
SELECT *
|
||||
FROM tmp.supplierStatement`);
|
||||
|
||||
filter = mergeFilters(args.filter, {where});
|
||||
|
||||
stmt.merge(conn.makeSuffix(filter));
|
||||
stmts.push(stmt);
|
||||
stmts.push(`DROP TEMPORARY TABLE tmp.supplierStatement`);
|
||||
|
||||
const sql = ParameterizedSQL.join(stmts, ';');
|
||||
const results = await conn.executeStmt(sql);
|
||||
const resultsIndex = stmts.length - 2;
|
||||
const result = results[resultsIndex];
|
||||
return result;
|
||||
};
|
||||
};
|
|
@ -8,6 +8,7 @@ module.exports = Self => {
|
|||
require('../methods/supplier/updateFiscalData')(Self);
|
||||
require('../methods/supplier/consumption')(Self);
|
||||
require('../methods/supplier/freeAgencies')(Self);
|
||||
require('../methods/supplier/receipts')(Self);
|
||||
require('../methods/supplier/campaignMetricsPdf')(Self);
|
||||
require('../methods/supplier/campaignMetricsEmail')(Self);
|
||||
require('../methods/supplier/newSupplier')(Self);
|
||||
|
|
|
@ -72,7 +72,8 @@ module.exports = Self => {
|
|||
}, {
|
||||
relation: 'address',
|
||||
scope: {
|
||||
fields: ['street', 'city', 'provinceFk', 'phone', 'mobile', 'postalCode', 'isEqualizated'],
|
||||
fields: ['street', 'city', 'provinceFk', 'phone', 'mobile',
|
||||
'postalCode', 'isEqualizated', 'nickname'],
|
||||
include: {
|
||||
relation: 'province',
|
||||
scope: {
|
||||
|
|
|
@ -57,6 +57,10 @@ module.exports = Self => {
|
|||
arg: 'hasFileAttached',
|
||||
type: 'Boolean',
|
||||
description: 'True if has an attached file'
|
||||
}, {
|
||||
arg: 'agencyModeFk',
|
||||
type: 'Number',
|
||||
description: 'Carrier'
|
||||
}],
|
||||
returns: {type: 'object', root: true},
|
||||
http: {path: `/:id/saveThermograph`, verb: 'POST'}
|
||||
|
@ -76,6 +80,7 @@ module.exports = Self => {
|
|||
reference,
|
||||
description,
|
||||
hasFileAttached,
|
||||
agencyModeFk,
|
||||
options
|
||||
) => {
|
||||
const models = Self.app.models;
|
||||
|
@ -119,6 +124,7 @@ module.exports = Self => {
|
|||
minTemperature,
|
||||
temperatureFk,
|
||||
warehouseFk: warehouseId,
|
||||
agencyModeFk,
|
||||
}, myOptions);
|
||||
|
||||
if (tx) await tx.commit();
|
||||
|
|
|
@ -9,6 +9,7 @@ describe('Thermograph saveThermograph()', () => {
|
|||
const maxTemperature = 30;
|
||||
const minTemperature = 10;
|
||||
const temperatureFk = 'COOL';
|
||||
const agencyModeFk = 1;
|
||||
let tx;
|
||||
let options;
|
||||
|
||||
|
@ -46,13 +47,16 @@ describe('Thermograph saveThermograph()', () => {
|
|||
null,
|
||||
null,
|
||||
null,
|
||||
null, options
|
||||
null,
|
||||
agencyModeFk,
|
||||
options
|
||||
);
|
||||
|
||||
expect(updatedThermograph.result).toEqual(state);
|
||||
expect(updatedThermograph.maxTemperature).toEqual(maxTemperature);
|
||||
expect(updatedThermograph.minTemperature).toEqual(minTemperature);
|
||||
expect(updatedThermograph.temperatureFk).toEqual(temperatureFk);
|
||||
expect(updatedThermograph.agencyModeFk).toEqual(agencyModeFk);
|
||||
expect(updatedThermograph.dmsFk).toEqual(dmsFk);
|
||||
});
|
||||
|
||||
|
|
|
@ -22,5 +22,8 @@
|
|||
},
|
||||
"Temperature": {
|
||||
"dataSource": "vn"
|
||||
},
|
||||
"AgencyModeIncoming": {
|
||||
"dataSource": "vn"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
{
|
||||
"name": "AgencyModeIncoming",
|
||||
"base": "VnModel",
|
||||
"options": {
|
||||
"mysql": {
|
||||
"table": "agencyModeIncoming"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "number",
|
||||
"id": true,
|
||||
"description": "Identifier"
|
||||
},
|
||||
"name": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"acls": [
|
||||
{
|
||||
"accessType": "READ",
|
||||
"principalType": "ROLE",
|
||||
"principalId": "$everyone",
|
||||
"permission": "ALLOW"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -58,6 +58,11 @@
|
|||
"type": "belongsTo",
|
||||
"model": "Thermograph",
|
||||
"foreignKey": "thermographFk"
|
||||
},
|
||||
"agencyMode": {
|
||||
"type": "belongsTo",
|
||||
"model": "AgencyMode",
|
||||
"foreignKey": "agencyModeFk"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -166,12 +166,11 @@ module.exports = Self => {
|
|||
LEFT JOIN account.emailUser eu ON eu.userFk = u.id`
|
||||
);
|
||||
|
||||
stmt.merge(conn.makeWhere(filter.where));
|
||||
stmts.push(stmt);
|
||||
stmt.merge(conn.makeSuffix(filter));
|
||||
let itemsIndex = stmts.push(stmt) - 1;
|
||||
|
||||
const itemsIndex = stmts.push(stmt) - 1;
|
||||
const sql = ParameterizedSQL.join(stmts, ';');
|
||||
const result = await conn.executeStmt(sql, myOptions);
|
||||
return result[itemsIndex];
|
||||
let sql = ParameterizedSQL.join(stmts, ';');
|
||||
let result = await conn.executeStmt(sql);
|
||||
return itemsIndex === 0 ? result : result[itemsIndex];
|
||||
};
|
||||
};
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
module.exports = Self => {
|
||||
const validateTin = require('vn-loopback/util/validateTin');
|
||||
require('../methods/worker/filter')(Self);
|
||||
require('../methods/worker/mySubordinates')(Self);
|
||||
require('../methods/worker/isSubordinate')(Self);
|
||||
|
@ -23,26 +22,10 @@ module.exports = Self => {
|
|||
require('../methods/worker/getAvailablePda')(Self);
|
||||
require('../methods/worker/myTeam')(Self);
|
||||
|
||||
Self.validateAsync('fi', tinIsValid, {
|
||||
message: 'Invalid TIN'
|
||||
});
|
||||
|
||||
Self.canModifyAbsenceInPast = async(ctx, time) => {
|
||||
const hasPrivs = await Self.app.models.ACL.checkAccessAcl(ctx, 'Worker', 'canModifyAbsenceInPast', 'WRITE');
|
||||
const today = Date.vnNew();
|
||||
today.setHours(0, 0, 0, 0);
|
||||
return hasPrivs || today.getTime() < time;
|
||||
};
|
||||
|
||||
async function tinIsValid(err, done) {
|
||||
const country = await Self.app.models.Country.findOne({
|
||||
fields: ['code'],
|
||||
where: {id: this.originCountryFk}
|
||||
});
|
||||
const code = country ? country.code.toLowerCase() : null;
|
||||
|
||||
if (!this.fi || !validateTin(this.fi, code))
|
||||
err();
|
||||
done();
|
||||
}
|
||||
};
|
||||
|
|
|
@ -75,6 +75,9 @@
|
|||
},
|
||||
"isSsDiscounted": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"businessFk": {
|
||||
"type": "number"
|
||||
}
|
||||
},
|
||||
"relations": {
|
||||
|
@ -103,6 +106,11 @@
|
|||
"model": "WorkerDepartment",
|
||||
"foreignKey": "id"
|
||||
},
|
||||
"currentBusiness": {
|
||||
"type": "belongsTo",
|
||||
"model": "Business",
|
||||
"foreignKey": "businessFk"
|
||||
},
|
||||
"collegues": {
|
||||
"type": "hasMany",
|
||||
"model": "WorkerTeamCollegues",
|
||||
|
@ -113,6 +121,11 @@
|
|||
"model": "Locker",
|
||||
"foreignKey": "workerFk"
|
||||
},
|
||||
"business": {
|
||||
"type": "hasMany",
|
||||
"model": "Business",
|
||||
"foreignKey": "workerFk"
|
||||
},
|
||||
"medicalReview": {
|
||||
"type": "hasMany",
|
||||
"model": "MedicalReview",
|
||||
|
@ -259,12 +272,36 @@
|
|||
"relation": "department",
|
||||
"scope": {
|
||||
"fields": [
|
||||
"name"
|
||||
"id"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"relation": "business",
|
||||
"scope": {
|
||||
"fields": [
|
||||
"id",
|
||||
"started",
|
||||
"ended",
|
||||
"reasonEndFk",
|
||||
"departmentFk",
|
||||
"workerBusinessProfessionalCategoryFk"
|
||||
],
|
||||
"include": [
|
||||
{
|
||||
"relation": "reasonEnd",
|
||||
"scope": {
|
||||
"fields": [
|
||||
"id",
|
||||
"reason"
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"relation": "boss",
|
||||
"scope": {
|
||||
|
@ -312,7 +349,8 @@
|
|||
"educationLevelFk",
|
||||
"originCountryFk",
|
||||
"maritalStatus",
|
||||
"SSN"
|
||||
"SSN",
|
||||
"businessFk"
|
||||
],
|
||||
"include": [
|
||||
{
|
||||
|
@ -323,6 +361,48 @@
|
|||
"phone"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"relation": "currentBusiness",
|
||||
"scope": {
|
||||
"fields": [
|
||||
"id",
|
||||
"started",
|
||||
"ended",
|
||||
"reasonEndFk",
|
||||
"departmentFk",
|
||||
"workerBusinessProfessionalCategoryFk"
|
||||
],
|
||||
"include": [
|
||||
{
|
||||
"relation": "reasonEnd",
|
||||
"scope": {
|
||||
"fields": [
|
||||
"id",
|
||||
"reason"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"relation": "department",
|
||||
"scope": {
|
||||
"fields": [
|
||||
"id",
|
||||
"name"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"relation": "workerBusinessProfessionalCategory",
|
||||
"scope": {
|
||||
"fields": [
|
||||
"id",
|
||||
"description"
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue