From 3e1b296b29177f474f8d595d0a4cfa9d3a3622d0 Mon Sep 17 00:00:00 2001 From: carlossa Date: Tue, 28 May 2024 15:46:44 +0200 Subject: [PATCH 001/149] refs #6553 changes models --- modules/client/back/models/business.json | 60 ++++++++++++++++++++++++ modules/worker/back/models/worker.json | 5 ++ 2 files changed, 65 insertions(+) diff --git a/modules/client/back/models/business.json b/modules/client/back/models/business.json index 58e989ae08..8c572fb5df 100644 --- a/modules/client/back/models/business.json +++ b/modules/client/back/models/business.json @@ -13,6 +13,66 @@ }, "workcenterFk" : { "type": "number" + }, + "companyCodeFk" : { + "type": "string" + }, + "started" : { + "type": "date" + }, + "ended" : { + "type": "date" + }, + "workerBusiness" : { + "type": "string" + }, + "reasonEndFk" : { + "type": "number" + }, + "payedHolidays" : { + "type": "number" + }, + "occupationCodeFk" : { + "type": "number" + }, + "workerFk" : { + "type": "number" + }, + "notes" : { + "type": "string" + }, + "departmentFk": { + "type": "number" + }, + "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" + }, + "editorFk": { + "type": "number" } }, "relations": { diff --git a/modules/worker/back/models/worker.json b/modules/worker/back/models/worker.json index 4e7617aabe..5c5090691b 100644 --- a/modules/worker/back/models/worker.json +++ b/modules/worker/back/models/worker.json @@ -115,6 +115,11 @@ "type": "hasMany", "model": "Locker", "foreignKey": "workerFk" + }, + "business": { + "type": "hasMany", + "model": "Business", + "foreignKey": "workerFk" } }, "acls":[ From a5ffdddb53d8d8b14414344b9a35fddec6fd34ca Mon Sep 17 00:00:00 2001 From: carlossa Date: Wed, 29 May 2024 15:56:27 +0200 Subject: [PATCH 002/149] refs #6553 fix back --- .../11076-blueChico/00-firstScript.sql | 20 ++++++++ modules/client/back/model-config.json | 15 ++++++ .../back/models/business-reason-end.json | 17 +++++++ modules/client/back/models/business.json | 50 +++++++++++++++++-- modules/client/back/models/calendar-type.json | 21 ++++++++ .../client/back/models/occupationCode.json | 17 +++++++ .../back/models/payroll-categories.json | 20 ++++++++ .../back/models/professional-category.json | 20 ++++++++ .../models/worker-business-agreement.json | 29 +++++++++++ .../back/models/worker-business-type.json | 26 ++++++++++ 10 files changed, 232 insertions(+), 3 deletions(-) create mode 100644 db/versions/11076-blueChico/00-firstScript.sql create mode 100644 modules/client/back/models/business-reason-end.json create mode 100644 modules/client/back/models/calendar-type.json create mode 100644 modules/client/back/models/occupationCode.json create mode 100644 modules/client/back/models/payroll-categories.json create mode 100644 modules/client/back/models/professional-category.json create mode 100644 modules/client/back/models/worker-business-agreement.json create mode 100644 modules/client/back/models/worker-business-type.json diff --git a/db/versions/11076-blueChico/00-firstScript.sql b/db/versions/11076-blueChico/00-firstScript.sql new file mode 100644 index 0000000000..d532265981 --- /dev/null +++ b/db/versions/11076-blueChico/00-firstScript.sql @@ -0,0 +1,20 @@ +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','*','*','ALLOW','ROLE','employee'); +INSERT INTO salix.ACL (model,property,accessType,permission,principalType,principalId) + VALUES ('CalendarType','*','*','ALLOW','ROLE','employee'); +INSERT INTO salix.ACL (model,property,accessType,permission,principalType,principalId) + VALUES ('OccupationCode','*','*','ALLOW','ROLE','employee'); +INSERT INTO salix.ACL (model,property,accessType,permission,principalType,principalId) + VALUES ('BusinessReasonEnd','*','*','ALLOW','ROLE','employee'); +INSERT INTO salix.ACL (model,property,accessType,permission,principalType,principalId) + VALUES ('WorkerBusinessProfessionalCategory','*','*','ALLOW','ROLE','employee'); +INSERT INTO salix.ACL (model,property,accessType,permission,principalType,principalId) + VALUES ('WorkerBusinessAgreement','*','*','ALLOW','ROLE','employee'); +INSERT INTO salix.ACL (model,property,accessType,permission,principalType,principalId) + VALUES ('WorkerBusinessType','*','*','ALLOW','ROLE','employee'); +INSERT INTO salix.ACL (model,property,accessType,permission,principalType,principalId) + VALUES ('Worker','__get__business','*','ALLOW','ROLE','employee'); diff --git a/modules/client/back/model-config.json b/modules/client/back/model-config.json index fc1254dd80..e2192ab1b9 100644 --- a/modules/client/back/model-config.json +++ b/modules/client/back/model-config.json @@ -139,5 +139,20 @@ }, "Xdiario": { "dataSource": "vn" + }, + "BusinessReasonEnd": { + "dataSource": "vn" + }, + "OccupationCode": { + "dataSource": "vn" + }, + "WorkerBusinessProfessionalCategory": { + "dataSource": "vn" + }, + "CalendarType": { + "dataSource": "vn" + }, + "WorkerBusinessType": { + "dataSource": "vn" } } diff --git a/modules/client/back/models/business-reason-end.json b/modules/client/back/models/business-reason-end.json new file mode 100644 index 0000000000..54a632bea8 --- /dev/null +++ b/modules/client/back/models/business-reason-end.json @@ -0,0 +1,17 @@ +{ + "name": "BusinessReasonEnd", + "base": "VnModel", + "options": { + "mysql": { + "table": "businessReasonEnd" + } + }, + "properties": { + "id": { + "type": "number" + }, + "reason": { + "type": "string" + } + } +} diff --git a/modules/client/back/models/business.json b/modules/client/back/models/business.json index 8c572fb5df..78605d6876 100644 --- a/modules/client/back/models/business.json +++ b/modules/client/back/models/business.json @@ -70,9 +70,6 @@ }, "basicSalary": { "type": "number" - }, - "editorFk": { - "type": "number" } }, "relations": { @@ -85,6 +82,53 @@ "type": "belongsTo", "model": "Department", "foreignKey": "departmentFk" + }, + "workCenter": { + "type": "belongsTo", + "model": "WorkCenter", + "foreignKey": "workcenterFk" + }, + "companyCode": { + "type": "belongsTo", + "model": "Company", + "foreignKey": "companyCodeFk" + }, + "reasonEnd": { + "type": "belongsTo", + "model": "BusinessReasonEnd", + "foreignKey": "reasonEndFk" + }, + "occupationCode": { + "type": "belongsTo", + "model": "OccupationCode", + "foreignKey":"occupationCodeFk" + }, + "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" + } + } } diff --git a/modules/client/back/models/calendar-type.json b/modules/client/back/models/calendar-type.json new file mode 100644 index 0000000000..742aaed94c --- /dev/null +++ b/modules/client/back/models/calendar-type.json @@ -0,0 +1,21 @@ +{ + "name": "CalendarType", + "base": "VnModel", + "options": { + "mysql": { + "table": "calendarType" + } + }, + "properties": { + "id": { + "type": "number" + }, + "description": { + "type": "string" + }, + "hoursWeek": { + "type": "number" + }, + "isPartial": "number" + } +} diff --git a/modules/client/back/models/occupationCode.json b/modules/client/back/models/occupationCode.json new file mode 100644 index 0000000000..63c148a818 --- /dev/null +++ b/modules/client/back/models/occupationCode.json @@ -0,0 +1,17 @@ +{ + "name": "OccupationCode", + "base": "VnModel", + "options": { + "mysql": { + "table": "occupationCode" + } + }, + "properties": { + "code": { + "type": "string" + }, + "name": { + "type": "string" + } + } +} diff --git a/modules/client/back/models/payroll-categories.json b/modules/client/back/models/payroll-categories.json new file mode 100644 index 0000000000..54ff8a4c05 --- /dev/null +++ b/modules/client/back/models/payroll-categories.json @@ -0,0 +1,20 @@ +{ + "name": "BusinessReasonEnd", + "base": "VnModel", + "options": { + "mysql": { + "table": "payrollCategories" + } + }, + "properties": { + "id": { + "type": "number" + }, + "description": { + "type": "string" + }, + "rate": { + "type": "number" + } + } +} diff --git a/modules/client/back/models/professional-category.json b/modules/client/back/models/professional-category.json new file mode 100644 index 0000000000..5f812a704f --- /dev/null +++ b/modules/client/back/models/professional-category.json @@ -0,0 +1,20 @@ +{ + "name": "WorkerBusinessProfessionalCategory", + "base": "VnModel", + "options": { + "mysql": { + "table": "professionalCategory" + } + }, + "properties": { + "id": { + "type": "number" + }, + "description": { + "type": "string" + }, + "code": { + "type": "string" + } + } +} diff --git a/modules/client/back/models/worker-business-agreement.json b/modules/client/back/models/worker-business-agreement.json new file mode 100644 index 0000000000..bd62b2aa39 --- /dev/null +++ b/modules/client/back/models/worker-business-agreement.json @@ -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" + } + } +} diff --git a/modules/client/back/models/worker-business-type.json b/modules/client/back/models/worker-business-type.json new file mode 100644 index 0000000000..146bac7ab7 --- /dev/null +++ b/modules/client/back/models/worker-business-type.json @@ -0,0 +1,26 @@ +{ + "name": "WorkerBusinessType", + "base": "VnModel", + "options": { + "mysql": { + "table": "workerBusinessType" + } + }, + "properties": { + "id": { + "type": "number" + }, + "name": { + "type": "string" + }, + "isFullTime": { + "type": "number" + }, + "isPermanent": { + "type": "number" + }, + "hasHolidayEntitlement": { + "type": "number" + } + } +} From 5d73af5392f9d46300ccf633cbe42302f1bb05e2 Mon Sep 17 00:00:00 2001 From: carlossa Date: Wed, 5 Jun 2024 10:43:53 +0200 Subject: [PATCH 003/149] refs #6553 fix back --- modules/client/back/model-config.json | 3 +++ modules/client/back/models/business.json | 8 ++++++-- modules/client/back/models/occupationCode.json | 3 ++- modules/client/back/models/payroll-categories.json | 2 +- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/modules/client/back/model-config.json b/modules/client/back/model-config.json index e2192ab1b9..8dcfaf5042 100644 --- a/modules/client/back/model-config.json +++ b/modules/client/back/model-config.json @@ -154,5 +154,8 @@ }, "WorkerBusinessType": { "dataSource": "vn" + }, + "PayrollCategory": { + "dataSource": "vn" } } diff --git a/modules/client/back/models/business.json b/modules/client/back/models/business.json index 78605d6876..c870c8f6e1 100644 --- a/modules/client/back/models/business.json +++ b/modules/client/back/models/business.json @@ -103,12 +103,16 @@ "model": "OccupationCode", "foreignKey":"occupationCodeFk" }, + "payrollCategory": { + "type": "belongsTo", + "model": "PayrollCategory", + "foreignKey":"workerBusinessCategoryFk" + }, "workerBusinessProfessionalCategory": { "type": "belongsTo", "model": "WorkerBusinessProfessionalCategory", "foreignKey": "workerBusinessProfessionalCategoryFk" - } - , + }, "calendarType": { "type": "belongsTo", "model": "CalendarType", diff --git a/modules/client/back/models/occupationCode.json b/modules/client/back/models/occupationCode.json index 63c148a818..e40eaf2fe1 100644 --- a/modules/client/back/models/occupationCode.json +++ b/modules/client/back/models/occupationCode.json @@ -8,7 +8,8 @@ }, "properties": { "code": { - "type": "string" + "type": "string", + "id": true }, "name": { "type": "string" diff --git a/modules/client/back/models/payroll-categories.json b/modules/client/back/models/payroll-categories.json index 54ff8a4c05..ca3431ba93 100644 --- a/modules/client/back/models/payroll-categories.json +++ b/modules/client/back/models/payroll-categories.json @@ -1,5 +1,5 @@ { - "name": "BusinessReasonEnd", + "name": "PayrollCategory", "base": "VnModel", "options": { "mysql": { From 06fe0f5cefc30e643fbe49c2a527652f3b9609be Mon Sep 17 00:00:00 2001 From: carlossa Date: Thu, 6 Jun 2024 07:34:17 +0200 Subject: [PATCH 004/149] refs #6553 fix acls --- db/versions/11076-blueChico/00-firstScript.sql | 2 ++ 1 file changed, 2 insertions(+) diff --git a/db/versions/11076-blueChico/00-firstScript.sql b/db/versions/11076-blueChico/00-firstScript.sql index d532265981..1abb234cf5 100644 --- a/db/versions/11076-blueChico/00-firstScript.sql +++ b/db/versions/11076-blueChico/00-firstScript.sql @@ -16,5 +16,7 @@ INSERT INTO salix.ACL (model,property,accessType,permission,principalType,princi VALUES ('WorkerBusinessAgreement','*','*','ALLOW','ROLE','employee'); INSERT INTO salix.ACL (model,property,accessType,permission,principalType,principalId) VALUES ('WorkerBusinessType','*','*','ALLOW','ROLE','employee'); + INSERT INTO salix.ACL (model,property,accessType,permission,principalType,principalId) + VALUES ('PayrollCategory','*','*','ALLOW','ROLE','employee'); INSERT INTO salix.ACL (model,property,accessType,permission,principalType,principalId) VALUES ('Worker','__get__business','*','ALLOW','ROLE','employee'); From 41fabecc9b0dfd5fc67fa03282e2d1a45798d5f2 Mon Sep 17 00:00:00 2001 From: carlossa Date: Mon, 10 Jun 2024 09:29:37 +0200 Subject: [PATCH 005/149] refs #6553 fix acls --- db/versions/11076-blueChico/00-firstScript.sql | 3 +++ modules/client/back/models/business.json | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/db/versions/11076-blueChico/00-firstScript.sql b/db/versions/11076-blueChico/00-firstScript.sql index 1abb234cf5..95038318a5 100644 --- a/db/versions/11076-blueChico/00-firstScript.sql +++ b/db/versions/11076-blueChico/00-firstScript.sql @@ -20,3 +20,6 @@ INSERT INTO salix.ACL (model,property,accessType,permission,principalType,princi VALUES ('PayrollCategory','*','*','ALLOW','ROLE','employee'); INSERT INTO salix.ACL (model,property,accessType,permission,principalType,principalId) VALUES ('Worker','__get__business','*','ALLOW','ROLE','employee'); +INSERT INTO salix.ACL (model,property,accessType,permission,principalType,principalId) + VALUES ('Worker','__create__business','*','ALLOW','ROLE','employee'); + diff --git a/modules/client/back/models/business.json b/modules/client/back/models/business.json index c870c8f6e1..1a500d4442 100644 --- a/modules/client/back/models/business.json +++ b/modules/client/back/models/business.json @@ -33,7 +33,7 @@ "type": "number" }, "occupationCodeFk" : { - "type": "number" + "type": "string" }, "workerFk" : { "type": "number" From 4f7b625a4fe62fb92e9a1c1dcbb29786d727d8d5 Mon Sep 17 00:00:00 2001 From: alexm Date: Fri, 14 Jun 2024 14:48:45 +0200 Subject: [PATCH 006/149] fix(business): sql role --- .../11076-blueChico/00-firstScript.sql | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/db/versions/11076-blueChico/00-firstScript.sql b/db/versions/11076-blueChico/00-firstScript.sql index 95038318a5..84cc82dd92 100644 --- a/db/versions/11076-blueChico/00-firstScript.sql +++ b/db/versions/11076-blueChico/00-firstScript.sql @@ -3,23 +3,25 @@ ADD CONSTRAINT `business_companyCodeFk` FOREIGN KEY (`companyCodeFk`) REFERENCES -- 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','*','*','ALLOW','ROLE','employee'); + VALUES ('BusinessReasonEnd','*','*','ALLOW','ROLE','hr'); INSERT INTO salix.ACL (model,property,accessType,permission,principalType,principalId) - VALUES ('CalendarType','*','*','ALLOW','ROLE','employee'); + VALUES ('CalendarType','*','*','ALLOW','ROLE','hr'); INSERT INTO salix.ACL (model,property,accessType,permission,principalType,principalId) - VALUES ('OccupationCode','*','*','ALLOW','ROLE','employee'); + VALUES ('OccupationCode','*','*','ALLOW','ROLE','hr'); INSERT INTO salix.ACL (model,property,accessType,permission,principalType,principalId) - VALUES ('BusinessReasonEnd','*','*','ALLOW','ROLE','employee'); + VALUES ('BusinessReasonEnd','*','*','ALLOW','ROLE','hr'); INSERT INTO salix.ACL (model,property,accessType,permission,principalType,principalId) - VALUES ('WorkerBusinessProfessionalCategory','*','*','ALLOW','ROLE','employee'); + VALUES ('WorkerBusinessProfessionalCategory','*','*','ALLOW','ROLE','hr'); INSERT INTO salix.ACL (model,property,accessType,permission,principalType,principalId) - VALUES ('WorkerBusinessAgreement','*','*','ALLOW','ROLE','employee'); + VALUES ('WorkerBusinessAgreement','*','*','ALLOW','ROLE','hr'); INSERT INTO salix.ACL (model,property,accessType,permission,principalType,principalId) - VALUES ('WorkerBusinessType','*','*','ALLOW','ROLE','employee'); - INSERT INTO salix.ACL (model,property,accessType,permission,principalType,principalId) - VALUES ('PayrollCategory','*','*','ALLOW','ROLE','employee'); + VALUES ('WorkerBusinessType','*','*','ALLOW','ROLE','hr'); INSERT INTO salix.ACL (model,property,accessType,permission,principalType,principalId) - VALUES ('Worker','__get__business','*','ALLOW','ROLE','employee'); + VALUES ('PayrollCategory','*','*','ALLOW','ROLE','hr'); INSERT INTO salix.ACL (model,property,accessType,permission,principalType,principalId) - VALUES ('Worker','__create__business','*','ALLOW','ROLE','employee'); + 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'); From cc8af9d14afdb5e3229da37279cfb2d9fa07ae4a Mon Sep 17 00:00:00 2001 From: carlossa Date: Tue, 25 Jun 2024 10:21:24 +0200 Subject: [PATCH 007/149] refs #6553 fix back --- modules/client/back/models/business.json | 8 +++++--- .../models/{occupationCode.json => occupation-code.json} | 0 modules/client/back/models/worker-business-type.json | 3 ++- 3 files changed, 7 insertions(+), 4 deletions(-) rename modules/client/back/models/{occupationCode.json => occupation-code.json} (100%) diff --git a/modules/client/back/models/business.json b/modules/client/back/models/business.json index 1a500d4442..dc6cd0bcd9 100644 --- a/modules/client/back/models/business.json +++ b/modules/client/back/models/business.json @@ -42,7 +42,7 @@ "type": "string" }, "departmentFk": { - "type": "number" + "type": "string" }, "workerBusinessProfessionalCategoryFk": { "type": "number" @@ -91,7 +91,8 @@ "companyCode": { "type": "belongsTo", "model": "Company", - "foreignKey": "companyCodeFk" + "foreignKey": "companyCodeFk", + "primaryKey": "code" }, "reasonEnd": { "type": "belongsTo", @@ -101,7 +102,8 @@ "occupationCode": { "type": "belongsTo", "model": "OccupationCode", - "foreignKey":"occupationCodeFk" + "foreignKey":"occupationCodeFk", + "primaryKey": "code" }, "payrollCategory": { "type": "belongsTo", diff --git a/modules/client/back/models/occupationCode.json b/modules/client/back/models/occupation-code.json similarity index 100% rename from modules/client/back/models/occupationCode.json rename to modules/client/back/models/occupation-code.json diff --git a/modules/client/back/models/worker-business-type.json b/modules/client/back/models/worker-business-type.json index 146bac7ab7..648ce3fd2a 100644 --- a/modules/client/back/models/worker-business-type.json +++ b/modules/client/back/models/worker-business-type.json @@ -8,7 +8,8 @@ }, "properties": { "id": { - "type": "number" + "type": "number", + "id": true }, "name": { "type": "string" From 36b4c7fb7474158f8c150ab13c9fa0d20dd645cc Mon Sep 17 00:00:00 2001 From: alexm Date: Wed, 26 Jun 2024 12:33:38 +0200 Subject: [PATCH 008/149] typo --- modules/worker/back/models/worker.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/worker/back/models/worker.json b/modules/worker/back/models/worker.json index 8f2be694fb..a1b6e21b02 100644 --- a/modules/worker/back/models/worker.json +++ b/modules/worker/back/models/worker.json @@ -118,7 +118,7 @@ }, "business": { "type": "hasMany", - "model": "Business", + "model": "Business" }, "incomes": { "type": "hasMany", From 070613de643458e2ea8af353edd547a016564995 Mon Sep 17 00:00:00 2001 From: guillermo Date: Tue, 27 Aug 2024 12:58:08 +0200 Subject: [PATCH 009/149] feat: refs #7686 Added new alertLevel APPROVED and changes in vn.state.alertLevel --- .../11202-limeRuscus/00-addAlertLevel.sql | 6 ++++++ .../01-updateStateAlertLevel.sql | 21 +++++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 db/versions/11202-limeRuscus/00-addAlertLevel.sql create mode 100644 db/versions/11202-limeRuscus/01-updateStateAlertLevel.sql diff --git a/db/versions/11202-limeRuscus/00-addAlertLevel.sql b/db/versions/11202-limeRuscus/00-addAlertLevel.sql new file mode 100644 index 0000000000..1f667946bb --- /dev/null +++ b/db/versions/11202-limeRuscus/00-addAlertLevel.sql @@ -0,0 +1,6 @@ +UPDATE vn.alertLevel SET id = 5 WHERE id = 4; +UPDATE vn.alertLevel SET id = 4 WHERE id = 3; +UPDATE vn.alertLevel SET id = 3 WHERE id = 2; +UPDATE vn.alertLevel SET id = 2 WHERE id = 1; +INSERT INTO vn.alertLevel (code, id, hasToRecalcPrice) + VALUES ('APPROVED', 1, 1) \ No newline at end of file diff --git a/db/versions/11202-limeRuscus/01-updateStateAlertLevel.sql b/db/versions/11202-limeRuscus/01-updateStateAlertLevel.sql new file mode 100644 index 0000000000..f7261c08ac --- /dev/null +++ b/db/versions/11202-limeRuscus/01-updateStateAlertLevel.sql @@ -0,0 +1,21 @@ +UPDATE vn.state + SET alertLevel = 1 -- APPROVED + WHERE id IN ( + 3, -- Ok + 4 -- Impreso + ); + +UPDATE vn.state + SET alertLevel = 2 -- ON_PREVIOUS + WHERE id IN ( + 36, -- Previa Revisando + 37, -- Previa Revisado + 26, -- Prep Previa + 28, -- Previa OK + 29, -- Previa Impreso + 31, -- Polizon Impreso + 32, -- Polizon OK + 20, -- Asignado + 23, -- URGENTE + 33 -- Auto_Impreso + ); From 28c94b5f324fd40ce60a23677cb274cf8b3c4aa3 Mon Sep 17 00:00:00 2001 From: guillermo Date: Tue, 27 Aug 2024 12:58:48 +0200 Subject: [PATCH 010/149] feat: refs #7686 Changes in procs --- .../bs/procedures/inventoryDiscrepancyDetail_replace.sql | 5 ++--- db/routines/hedera/procedures/order_confirmWithUser.sql | 2 +- db/routines/vn/procedures/itemShelvingRadar.sql | 2 +- db/routines/vn/procedures/productionControl.sql | 2 +- db/routines/vn/procedures/ticketDown_PrintableSelection.sql | 2 +- db/routines/vn/procedures/ticketGetVisibleAvailable.sql | 2 +- db/routines/vn/procedures/ticket_DelayTruck.sql | 2 +- db/routines/vn/procedures/ticket_canMerge.sql | 4 ++-- db/routines/vn/procedures/ticket_canbePostponed.sql | 2 +- modules/monitor/back/methods/sales-monitor/salesFilter.js | 2 +- modules/ticket/back/methods/ticket/filter.js | 2 +- modules/ticket/back/methods/ticket/getTicketsFuture.js | 2 +- 12 files changed, 14 insertions(+), 15 deletions(-) diff --git a/db/routines/bs/procedures/inventoryDiscrepancyDetail_replace.sql b/db/routines/bs/procedures/inventoryDiscrepancyDetail_replace.sql index 8630053734..481082766c 100644 --- a/db/routines/bs/procedures/inventoryDiscrepancyDetail_replace.sql +++ b/db/routines/bs/procedures/inventoryDiscrepancyDetail_replace.sql @@ -65,15 +65,14 @@ BEGIN JOIN vn.ticketState ts ON ts.ticketFk = t.id JOIN vn.alertLevel al ON al.id = ts.alertLevel WHERE t.shipped BETWEEN util.VN_CURDATE() AND util.dayend(util.VN_CURDATE()) - AND s.isPicked = FALSE - AND al.code = 'FREE' + AND NOT s.isPicked + AND al.code IN ('FREE', 'APPROVED') AND t.warehouseFk = vWarehouseFk GROUP BY s.itemFk HAVING notPicked ) s ON s.itemFk = v.item_id WHERE v.calc_id = vCalc AND NOT v.visible <=> tv.totalVisible; - END LOOP; CLOSE cWarehouses; diff --git a/db/routines/hedera/procedures/order_confirmWithUser.sql b/db/routines/hedera/procedures/order_confirmWithUser.sql index 2b033b704b..e293427e88 100644 --- a/db/routines/hedera/procedures/order_confirmWithUser.sql +++ b/db/routines/hedera/procedures/order_confirmWithUser.sql @@ -134,7 +134,7 @@ BEGIN ) SELECT t.id INTO vTicketFk FROM vn.ticket t - JOIN vn.alertLevel al ON al.code = 'FREE' + JOIN vn.alertLevel al ON al.code IN ('FREE', 'APPROVED') LEFT JOIN tPrevia tp ON tp.ticketFk = t.id LEFT JOIN vn.ticketState tls ON tls.ticketFk = t.id JOIN hedera.`order` o ON o.address_id = t.addressFk diff --git a/db/routines/vn/procedures/itemShelvingRadar.sql b/db/routines/vn/procedures/itemShelvingRadar.sql index aa95d05037..3c7ba577b1 100644 --- a/db/routines/vn/procedures/itemShelvingRadar.sql +++ b/db/routines/vn/procedures/itemShelvingRadar.sql @@ -106,7 +106,7 @@ BEGIN JOIN alertLevel al ON al.id = tst.alertLevel JOIN sale s ON s.ticketFk = t.id WHERE t.warehouseFk = vWarehouseFk - AND al.code = 'FREE' + AND al.code IN ('FREE', 'APPROVED') GROUP BY s.itemFk ) sub ON sub.itemFk = ishr.itemFk ORDER BY i.typeFk, i.longName; diff --git a/db/routines/vn/procedures/productionControl.sql b/db/routines/vn/procedures/productionControl.sql index 84717a19aa..16a2ada935 100644 --- a/db/routines/vn/procedures/productionControl.sql +++ b/db/routines/vn/procedures/productionControl.sql @@ -82,7 +82,7 @@ proc: BEGIN rm.bufferFk FROM tmp.productionTicket tt JOIN ticket t ON tt.ticketFk = t.id - JOIN alertLevel al ON al.code = 'FREE' + JOIN alertLevel al ON al.code = 'APPROVED' LEFT JOIN ticketStateToday tst ON tst.ticketFk = t.id LEFT JOIN `state` st ON st.id = tst.state LEFT JOIN client c ON c.id = t.clientFk diff --git a/db/routines/vn/procedures/ticketDown_PrintableSelection.sql b/db/routines/vn/procedures/ticketDown_PrintableSelection.sql index 45002dd1ff..22de6573a1 100644 --- a/db/routines/vn/procedures/ticketDown_PrintableSelection.sql +++ b/db/routines/vn/procedures/ticketDown_PrintableSelection.sql @@ -13,7 +13,7 @@ BEGIN JOIN vn.parking p ON p.id = sh.parkingFk WHERE p.sectorFk = vSectorFk ) sub ON sub.id = td.ticketFk - JOIN vn.ticketDown_SelectionType tdst ON tdst.description = 'FREE' + JOIN vn.ticketDown_SelectionType tdst ON tdst.description IN ('FREE', 'APPROVED') JOIN vn.ticketDown_SelectionType tdst2 ON tdst2.description = 'SELECTED' SET td.selected = tdst2.id WHERE td.selected = tdst.id; diff --git a/db/routines/vn/procedures/ticketGetVisibleAvailable.sql b/db/routines/vn/procedures/ticketGetVisibleAvailable.sql index 3717d57e3a..7589e2702c 100644 --- a/db/routines/vn/procedures/ticketGetVisibleAvailable.sql +++ b/db/routines/vn/procedures/ticketGetVisibleAvailable.sql @@ -12,7 +12,7 @@ BEGIN SELECT t.warehouseFk, t.shipped, ts.alertLevel, al.id INTO vWarehouse, vShipped, vAlertLevel, vAlertLevelFree FROM ticket t - JOIN alertLevel al ON al.code = 'FREE' + JOIN alertLevel al ON al.code IN ('FREE', 'APPROVED') LEFT JOIN ticketState ts ON ts.ticketFk = vTicket WHERE t.id = vTicket; diff --git a/db/routines/vn/procedures/ticket_DelayTruck.sql b/db/routines/vn/procedures/ticket_DelayTruck.sql index 81896dd8e4..64598646c4 100644 --- a/db/routines/vn/procedures/ticket_DelayTruck.sql +++ b/db/routines/vn/procedures/ticket_DelayTruck.sql @@ -13,7 +13,7 @@ BEGIN CREATE TEMPORARY TABLE tTicket SELECT ticketFk FROM tmp.productionBuffer - JOIN alertLevel al ON al.code = 'FREE' + JOIN alertLevel al ON al.code IN ('FREE', 'APPROVED') WHERE shipped = util.VN_CURDATE() AND problem LIKE '%I:%' AND (HH <= vHour OR HH = vHour AND mm < vMinute) diff --git a/db/routines/vn/procedures/ticket_canMerge.sql b/db/routines/vn/procedures/ticket_canMerge.sql index c3f211027d..91b77296cb 100644 --- a/db/routines/vn/procedures/ticket_canMerge.sql +++ b/db/routines/vn/procedures/ticket_canMerge.sql @@ -48,14 +48,14 @@ BEGIN WHERE t.shipped BETWEEN TIMESTAMPADD(DAY, vScopeDays,vDated) AND util.dayend(TIMESTAMPADD(DAY, vScopeDays,vDated)) AND t.warehouseFk = vWarehouseFk - AND al.code = 'FREE' + AND al.code IN ('FREE', 'APPROVED') GROUP BY t.id ) sub GROUP BY sub.addressFk ) sub2 ON sub2.addressFk = t.addressFk AND t.id != sub2.id WHERE t.shipped BETWEEN vDated AND util.dayend(vDated) AND t.warehouseFk = vWarehouseFk - AND al.code = 'FREE' + AND al.code IN ('FREE', 'APPROVED') AND tp.ticketFk IS NULL GROUP BY sv.ticketFk HAVING liters <= vLitersMax diff --git a/db/routines/vn/procedures/ticket_canbePostponed.sql b/db/routines/vn/procedures/ticket_canbePostponed.sql index 442059b99a..f5065746bd 100644 --- a/db/routines/vn/procedures/ticket_canbePostponed.sql +++ b/db/routines/vn/procedures/ticket_canbePostponed.sql @@ -65,7 +65,7 @@ BEGIN ) sub2 ON sub2.addressFk = t.addressFk AND t.id != sub2.id WHERE t.shipped BETWEEN vOriginDated AND util.dayend(vOriginDated) AND t.warehouseFk = vWarehouseFk - AND al.code = 'FREE' + AND al.code IN ('FREE', 'APPROVED') AND tp.ticketFk IS NULL GROUP BY sv.ticketFk HAVING futureId; diff --git a/modules/monitor/back/methods/sales-monitor/salesFilter.js b/modules/monitor/back/methods/sales-monitor/salesFilter.js index 33b37d8a4a..513efc4122 100644 --- a/modules/monitor/back/methods/sales-monitor/salesFilter.js +++ b/modules/monitor/back/methods/sales-monitor/salesFilter.js @@ -288,7 +288,7 @@ module.exports = Self => { SELECT f.id ticketFk, f.clientFk, f.warehouseFk, f.shipped FROM tmp.filter f LEFT JOIN alertLevel al ON al.id = f.alertLevel - WHERE (al.code = 'FREE' OR f.alertLevel IS NULL) + WHERE (al.code IN ('FREE', 'APPROVED') OR f.alertLevel IS NULL) AND f.shipped >= ?`, [date]); stmts.push(stmt); diff --git a/modules/ticket/back/methods/ticket/filter.js b/modules/ticket/back/methods/ticket/filter.js index 3e8b732afd..5ac72539ad 100644 --- a/modules/ticket/back/methods/ticket/filter.js +++ b/modules/ticket/back/methods/ticket/filter.js @@ -299,7 +299,7 @@ module.exports = Self => { SELECT f.id ticketFk, f.clientFk, f.warehouseFk, f.shipped FROM tmp.filter f LEFT JOIN alertLevel al ON al.id = f.alertLevel - WHERE (al.code = 'FREE' OR f.alertLevel IS NULL) + WHERE (al.code IN ('FREE', 'APPROVED') OR f.alertLevel IS NULL) AND f.shipped >= ? `, [date]); diff --git a/modules/ticket/back/methods/ticket/getTicketsFuture.js b/modules/ticket/back/methods/ticket/getTicketsFuture.js index 0fd21ea74e..41497062fb 100644 --- a/modules/ticket/back/methods/ticket/getTicketsFuture.js +++ b/modules/ticket/back/methods/ticket/getTicketsFuture.js @@ -152,7 +152,7 @@ module.exports = Self => { SELECT f.id ticketFk, f.clientFk, f.warehouseFk, f.shipped, f.lines, f.liters FROM tmp.filter f LEFT JOIN alertLevel al ON al.id = f.alertLevel - WHERE (al.code = 'FREE' OR f.alertLevel IS NULL) + WHERE (al.code IN ('FREE', 'APPROVED') OR f.alertLevel IS NULL) `); stmts.push(stmt); From 5e5a8078ca43e2972db6c75311b400a6617e6e53 Mon Sep 17 00:00:00 2001 From: carlossa Date: Tue, 3 Sep 2024 13:59:02 +0200 Subject: [PATCH 011/149] fix: refs #6553 json worker --- modules/worker/back/models/worker.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/worker/back/models/worker.json b/modules/worker/back/models/worker.json index a1b6e21b02..0fb1feb1be 100644 --- a/modules/worker/back/models/worker.json +++ b/modules/worker/back/models/worker.json @@ -118,7 +118,8 @@ }, "business": { "type": "hasMany", - "model": "Business" + "model": "Business", + "foreignKey": "workerFk" }, "incomes": { "type": "hasMany", From 91fac11fa0ac19c03fb8cfde516c7a47c44e5d49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Andr=C3=A9s?= Date: Mon, 16 Sep 2024 18:21:12 +0200 Subject: [PATCH 012/149] fix: refs #7760 tmp.ticketIPT --- .../vn/procedures/prepareTicketList.sql | 8 +- .../vn/procedures/productionControl.sql | 43 ++-- .../vn/procedures/sale_getProblems.sql | 233 ----------------- .../procedures/sale_getProblemsByTicket.sql | 23 +- .../vn/procedures/ticket_getProblems.sql | 239 +++++++++++++++--- .../back/methods/sales-monitor/salesFilter.js | 11 +- modules/ticket/back/methods/ticket/filter.js | 10 +- .../back/methods/ticket/getTicketsFuture.js | 10 +- 8 files changed, 250 insertions(+), 327 deletions(-) delete mode 100644 db/routines/vn/procedures/sale_getProblems.sql diff --git a/db/routines/vn/procedures/prepareTicketList.sql b/db/routines/vn/procedures/prepareTicketList.sql index 7c44bb9946..cfe9492ee0 100644 --- a/db/routines/vn/procedures/prepareTicketList.sql +++ b/db/routines/vn/procedures/prepareTicketList.sql @@ -1,16 +1,18 @@ DELIMITER $$ -CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `vn`.`prepareTicketList`(vStartingDate DATETIME, vEndingDate DATETIME) +CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `vn`.`prepareTicketList`( + vStartingDate DATETIME, + vEndingDate DATETIME +) BEGIN DROP TEMPORARY TABLE IF EXISTS tmp.productionTicket; CREATE TEMPORARY TABLE tmp.productionTicket (PRIMARY KEY (ticketFk)) ENGINE = MEMORY - SELECT t.id ticketFk, t.clientFk + SELECT t.id ticketFk FROM ticket t JOIN alertLevel al ON al.code = 'DELIVERED' LEFT JOIN ticketState ts ON ts.ticketFk = t.id JOIN client c ON c.id = t.clientFk - WHERE c.typeFk IN ('normal','handMaking','internalUse') AND ( t.shipped BETWEEN util.VN_CURDATE() AND vEndingDate diff --git a/db/routines/vn/procedures/productionControl.sql b/db/routines/vn/procedures/productionControl.sql index e5323e84ef..88ed42e837 100644 --- a/db/routines/vn/procedures/productionControl.sql +++ b/db/routines/vn/procedures/productionControl.sql @@ -15,7 +15,7 @@ proc: BEGIN DECLARE vEndingDate DATETIME; DECLARE vIsTodayRelative BOOLEAN; - SELECT util.dayEnd(util.VN_CURDATE()) + INTERVAL LEAST(vScopeDays, maxProductionScopeDays) DAY + SELECT util.dayEnd(util.VN_CURDATE() + INTERVAL LEAST(vScopeDays, maxProductionScopeDays) DAY) INTO vEndingDate FROM productionConfig; @@ -26,16 +26,10 @@ proc: BEGIN CALL prepareTicketList(util.yesterday(), vEndingDate); CREATE OR REPLACE TEMPORARY TABLE tmp.ticket - SELECT * FROM tmp.productionTicket; - - CALL prepareClientList(); - - CREATE OR REPLACE TEMPORARY TABLE tmp.sale_getProblems (INDEX (ticketFk)) ENGINE = MEMORY - SELECT tt.ticketFk, tt.clientFk, t.warehouseFk, t.shipped - FROM tmp.productionTicket tt - JOIN ticket t ON t.id = tt.ticketFk; + SELECT ticketFk + FROM tmp.productionTicket; CALL ticket_getProblems(vIsTodayRelative); @@ -43,7 +37,7 @@ proc: BEGIN (PRIMARY KEY(ticketFk), previaParking VARCHAR(255)) ENGINE = MEMORY SELECT tt.ticketFk, - tt.clientFk, + t.clientFk, t.warehouseFk, t.nickname, t.packages, @@ -61,7 +55,17 @@ proc: BEGIN 0 `lines`, CAST( 0 AS DECIMAL(5,2)) m3, CAST( 0 AS DECIMAL(5,2)) preparationRate, - "" problem, + TRIM(CAST(CONCAT( IFNULL(tpr.itemShortage, ''), + IFNULL(tpr.itemDelay, ''), + IFNULL(tpr.itemLost, ''), + IF(tpr.isFreezed, ' CONGELADO',''), + IF(tpr.hasHighRisk, ' RIESGO',''), + IF(tpr.hasTicketRequest, ' COD 100',''), + IF(tpr.isTaxDataChecked, '',' FICHA INCOMPLETA'), + IF(tpr.hasComponentLack, ' COMPONENTES', ''), + IF(HOUR(util.VN_NOW()) < IF(HOUR(t.shipped), HOUR(t.shipped), COALESCE(HOUR(zc.hour),HOUR(z.hour))) + AND tpr.isTooLittle, ' PEQUEÑO', '') + ) AS char(255))) problem, IFNULL(tls.state,2) state, w.code workerCode, DATE(t.shipped) shipped, @@ -101,6 +105,7 @@ proc: BEGIN AND DATE(t.shipped) = zc.dated LEFT JOIN ticketParking tp ON tp.ticketFk = t.id LEFT JOIN parking pk ON pk.id = tp.parkingFk + LEFT JOIN tmp.ticketProblem tpr ON tpr.ticketFk = tt.ticketFk WHERE t.warehouseFk = vWarehouseFk AND dm.code IN ('AGENCY', 'DELIVERY', 'PICKUP'); @@ -123,19 +128,6 @@ proc: BEGIN ADD COLUMN `collectionV` INT, ADD COLUMN `collectionN` INT; - UPDATE tmp.productionBuffer pb - JOIN tmp.ticket_problems tp ON tp.ticketFk = pb.ticketFk - SET pb.problem = TRIM(CAST(CONCAT( IFNULL(tp.itemShortage, ''), - IFNULL(tp.itemDelay, ''), - IFNULL(tp.itemLost, ''), - IF(tp.isFreezed, ' CONGELADO',''), - IF(tp.hasHighRisk, ' RIESGO',''), - IF(tp.hasTicketRequest, ' COD 100',''), - IF(tp.isTaxDataChecked, '',' FICHA INCOMPLETA'), - IF(tp.hasComponentLack, ' COMPONENTES', ''), - IF(HOUR(util.VN_NOW()) < pb.HH AND tp.isTooLittle, ' PEQUEÑO', '') - ) AS char(255))); - -- Clientes Nuevos o Recuperados UPDATE tmp.productionBuffer pb LEFT JOIN bs.clientNewBorn cnb ON cnb.clientFk = pb.clientFk @@ -267,8 +259,7 @@ proc: BEGIN DROP TEMPORARY TABLE tmp.productionTicket, - tmp.ticket, - tmp.ticket_problems, + tmp.ticketProblems, tmp.ticketWithPrevia, tItemShelvingStock, tItemPackingType; diff --git a/db/routines/vn/procedures/sale_getProblems.sql b/db/routines/vn/procedures/sale_getProblems.sql deleted file mode 100644 index 2bba8fbc39..0000000000 --- a/db/routines/vn/procedures/sale_getProblems.sql +++ /dev/null @@ -1,233 +0,0 @@ -DELIMITER $$ -CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `vn`.`sale_getProblems`( - vIsTodayRelative tinyint(1) -) -BEGIN -/** - * Calcula los problemas de cada venta para un conjunto de tickets. - * - * @param vIsTodayRelative Indica si se calcula el disponible como si todo saliera hoy - * @table tmp.sale_getProblems(ticketFk, clientFk, warehouseFk, shipped) Tickets a calcular - * @return tmp.sale_problems - */ - DECLARE vWarehouseFk INT; - DECLARE vDate DATE; - DECLARE vAvailableCache INT; - DECLARE vVisibleCache INT; - DECLARE vDone BOOL; - DECLARE vCursor CURSOR FOR - SELECT DISTINCT warehouseFk, IF(vIsTodayRelative, util.VN_CURDATE(), DATE(shipped)) - FROM tmp.sale_getProblems - WHERE shipped BETWEEN util.VN_CURDATE() - AND util.dayEnd(util.VN_CURDATE() + INTERVAL IF(vIsTodayRelative, 9.9, 1.9) DAY); - - DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE; - - CREATE OR REPLACE TEMPORARY TABLE tmp.sale_problems ( - ticketFk INT(11), - saleFk INT(11), - isFreezed INTEGER(1) DEFAULT 0, - risk DECIMAL(10,1) DEFAULT 0, - hasRisk TINYINT(1) DEFAULT 0, - hasHighRisk TINYINT(1) DEFAULT 0, - hasTicketRequest INTEGER(1) DEFAULT 0, - itemShortage VARCHAR(255), - isTaxDataChecked INTEGER(1) DEFAULT 1, - itemDelay VARCHAR(255), - itemLost VARCHAR(255), - hasComponentLack INTEGER(1), - hasRounding VARCHAR(255), - isTooLittle BOOL DEFAULT FALSE, - isVip BOOL DEFAULT FALSE, - PRIMARY KEY (ticketFk, saleFk) - ) ENGINE = MEMORY; - - INSERT INTO tmp.sale_problems(ticketFk, - saleFk, - isFreezed, - risk, - hasRisk, - hasHighRisk, - hasTicketRequest, - isTaxDataChecked, - hasComponentLack, - isTooLittle) - SELECT sgp.ticketFk, - s.id, - IF(FIND_IN_SET('isFreezed', t.problem), TRUE, FALSE) isFreezed, - t.risk, - IF(FIND_IN_SET('hasRisk', t.problem), TRUE, FALSE) hasRisk, - IF(FIND_IN_SET('hasHighRisk', t.problem), TRUE, FALSE) hasHighRisk, - IF(FIND_IN_SET('hasTicketRequest', t.problem), TRUE, FALSE) hasTicketRequest, - IF(FIND_IN_SET('isTaxDataChecked', t.problem), FALSE, TRUE) isTaxDataChecked, - IF(FIND_IN_SET('hasComponentLack', s.problem), TRUE, FALSE) hasComponentLack, - IF(FIND_IN_SET('isTooLittle', t.problem) - AND util.VN_NOW() < (util.VN_CURDATE() + INTERVAL HOUR(zc.`hour`) HOUR) + INTERVAL MINUTE(zc.`hour`) MINUTE, - TRUE, FALSE) isTooLittle - FROM tmp.sale_getProblems sgp - JOIN ticket t ON t.id = sgp.ticketFk - LEFT JOIN sale s ON s.ticketFk = t.id - LEFT JOIN item i ON i.id = s.itemFk - LEFT JOIN zoneClosure zc ON zc.zoneFk = t.zoneFk - AND zc.dated = util.VN_CURDATE() - WHERE s.problem <> '' OR t.problem <> '' OR t.risk - GROUP BY t.id, s.id; - - INSERT INTO tmp.sale_problems(ticketFk, isVip) - SELECT sgp.ticketFk, TRUE - FROM tmp.sale_getProblems sgp - JOIN client c ON c.id = sgp.clientFk - WHERE c.businessTypeFk = 'VIP' - ON DUPLICATE KEY UPDATE isVIP = TRUE; - - CREATE OR REPLACE TEMPORARY TABLE tItemShelvingStock_byWarehouse - (INDEX (itemFk, warehouseFk)) - ENGINE = MEMORY - SELECT ish.itemFk itemFk, - SUM(ish.visible) visible, - s.warehouseFk warehouseFk - FROM itemShelving ish - JOIN shelving sh ON sh.code = ish.shelvingFk - JOIN parking p ON p.id = sh.parkingFk - JOIN sector s ON s.id = p.sectorFk - GROUP BY ish.itemFk, s.warehouseFk; - - -- Disponible, faltas, inventario y retrasos - OPEN vCursor; - l: LOOP - SET vDone = FALSE; - FETCH vCursor INTO vWarehouseFk, vDate; - - IF vDone THEN - LEAVE l; - END IF; - - -- Disponible: no va a haber suficiente producto para preparar todos los pedidos - CALL cache.available_refresh(vAvailableCache, FALSE, vWarehouseFk, vDate); - - -- Faltas: visible, disponible y ubicado son menores que la cantidad vendida - CALL cache.visible_refresh(vVisibleCache, FALSE, vWarehouseFk); - - INSERT INTO tmp.sale_problems(ticketFk, itemShortage, saleFk) - SELECT ticketFk, problem, saleFk - FROM ( - SELECT sgp.ticketFk, - LEFT(CONCAT('F: ', GROUP_CONCAT(i.id, ' ', i.longName, ' ')), 250) problem, - s.id saleFk - FROM tmp.sale_getProblems sgp - JOIN ticket t ON t.id = sgp.ticketFk - JOIN sale s ON s.ticketFk = t.id - JOIN item i ON i.id = s.itemFk - JOIN itemType it ON it.id = i.typeFk - JOIN itemCategory ic ON ic.id = it.categoryFk - LEFT JOIN cache.visible v ON v.item_id = i.id - AND v.calc_id = vVisibleCache - LEFT JOIN cache.available av ON av.item_id = i.id - AND av.calc_id = vAvailableCache - LEFT JOIN tItemShelvingStock_byWarehouse issw ON issw.itemFk = i.id - AND issw.warehouseFk = t.warehouseFk - WHERE IFNULL(v.visible, 0) < s.quantity - AND IFNULL(av.available, 0) < s.quantity - AND IFNULL(issw.visible, 0) < s.quantity - AND NOT s.isPicked - AND NOT s.reserved - AND ic.merchandise - AND IF(vIsTodayRelative, TRUE, DATE(t.shipped) = vDate) - AND NOT i.generic - AND util.VN_CURDATE() = vDate - AND t.warehouseFk = vWarehouseFk - GROUP BY sgp.ticketFk) sub - ON DUPLICATE KEY UPDATE itemShortage = sub.problem, saleFk = sub.saleFk; - - -- Inventario: Visible suficiente, pero ubicado menor a la cantidad vendida - INSERT INTO tmp.sale_problems(ticketFk, itemLost, saleFk) - SELECT ticketFk, problem, saleFk - FROM ( - SELECT sgp.ticketFk, - LEFT(GROUP_CONCAT('I: ', i.id, ' ', i.longName, ' '), 250) problem, - s.id saleFk - FROM tmp.sale_getProblems sgp - JOIN ticket t ON t.id = sgp.ticketFk - JOIN sale s ON s.ticketFk = t.id - JOIN item i ON i.id = s.itemFk - JOIN itemType it ON it.id = i.typeFk - JOIN itemCategory ic ON ic.id = it.categoryFk - LEFT JOIN cache.visible v ON v.item_id = s.itemFk - AND v.calc_id = vVisibleCache - LEFT JOIN tItemShelvingStock_byWarehouse issw ON issw.itemFk = i.id - AND issw.warehouseFk = t.warehouseFk - WHERE IFNULL(v.visible, 0) >= s.quantity - AND IFNULL(issw.visible, 0) < s.quantity - AND s.quantity > 0 - AND NOT s.isPicked - AND NOT s.reserved - AND ic.merchandise - AND IF(vIsTodayRelative, TRUE, DATE(t.shipped) = vDate) - AND NOT i.generic - AND util.VN_CURDATE() = vDate - AND t.warehouseFk = vWarehouseFk - GROUP BY sgp.ticketFk - ) sub - ON DUPLICATE KEY UPDATE itemLost = sub.problem, saleFk = sub.saleFk; - - -- Retraso: Disponible suficiente, pero no visible ni ubicado - INSERT INTO tmp.sale_problems(ticketFk, itemDelay, saleFk) - SELECT ticketFk, problem, saleFk - FROM ( - SELECT sgp.ticketFk, - LEFT(GROUP_CONCAT('R: ', i.id, ' ', i.longName, ' '), 250) problem, - s.id saleFk - FROM tmp.sale_getProblems sgp - JOIN ticket t ON t.id = sgp.ticketFk - JOIN sale s ON s.ticketFk = t.id - JOIN item i ON i.id = s.itemFk - JOIN itemType it ON it.id = i.typeFk - JOIN itemCategory ic ON ic.id = it.categoryFk - LEFT JOIN cache.visible v ON v.item_id = s.itemFk - AND v.calc_id = vVisibleCache - LEFT JOIN cache.available av ON av.item_id = i.id - AND av.calc_id = vAvailableCache - LEFT JOIN tItemShelvingStock_byWarehouse issw ON issw.itemFk = i.id - AND issw.warehouseFk = t.warehouseFk - WHERE IFNULL(v.visible, 0) < s.quantity - AND IFNULL(av.available, 0) >= s.quantity - AND IFNULL(issw.visible, 0) < s.quantity - AND s.quantity > 0 - AND NOT s.isPicked - AND NOT s.reserved - AND ic.merchandise - AND IF(vIsTodayRelative, TRUE, DATE(t.shipped) = vDate) - AND NOT i.generic - AND util.VN_CURDATE() = vDate - AND t.warehouseFk = vWarehouseFk - GROUP BY sgp.ticketFk - ) sub - ON DUPLICATE KEY UPDATE itemDelay = sub.problem, saleFk = sub.saleFk; - - -- Redondeo: cantidad incorrecta con respecto al grouping - CALL buy_getUltimate(NULL, vWarehouseFk, vDate); - INSERT INTO tmp.sale_problems(ticketFk, hasRounding, saleFk) - SELECT ticketFk, problem, saleFk - FROM ( - SELECT sgp.ticketFk, - s.id saleFk, - LEFT(GROUP_CONCAT('RE: ',i.id, ' ', IFNULL(i.longName,'') SEPARATOR ', '), 250) problem - FROM tmp.sale_getProblems sgp - JOIN ticket t ON t.id = sgp.ticketFk - AND t.warehouseFk = vWarehouseFk - JOIN sale s ON s.ticketFk = sgp.ticketFk - JOIN item i ON i.id = s.itemFk - JOIN tmp.buyUltimate bu ON bu.itemFk = s.itemFk - JOIN buy b ON b.id = bu.buyFk - WHERE MOD(s.quantity, b.`grouping`) - GROUP BY sgp.ticketFk - )sub - ON DUPLICATE KEY UPDATE hasRounding = sub.problem, saleFk = sub.saleFk; - - DROP TEMPORARY TABLE tmp.buyUltimate; - END LOOP; - CLOSE vCursor; - - DROP TEMPORARY TABLE tItemShelvingStock_byWarehouse; -END$$ -DELIMITER ; diff --git a/db/routines/vn/procedures/sale_getProblemsByTicket.sql b/db/routines/vn/procedures/sale_getProblemsByTicket.sql index ff419989d4..af69e84300 100644 --- a/db/routines/vn/procedures/sale_getProblemsByTicket.sql +++ b/db/routines/vn/procedures/sale_getProblemsByTicket.sql @@ -1,5 +1,8 @@ DELIMITER $$ -CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `vn`.`sale_getProblemsByTicket`(IN vTicketFk INT, IN vIsTodayRelative TINYINT(1)) +CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `vn`.`sale_getProblemsByTicket`( + IN vTicketFk INT, + IN vIsTodayRelative TINYINT(1) +) BEGIN /** * Calcula los problemas de cada venta @@ -7,19 +10,17 @@ BEGIN * * @return Problems result */ - CREATE OR REPLACE TEMPORARY TABLE tmp.sale_getProblems - (INDEX (ticketFk)) - ENGINE = MEMORY - SELECT t.id ticketFk, t.clientFk, t.warehouseFk, t.shipped - FROM ticket t - WHERE t.id = vTicketFk; + CREATE OR REPLACE TEMPORARY TABLE tmp.ticket + (INDEX (ticketFk)) + ENGINE = MEMORY + SELECT vTicketFk ticketFk; - CALL sale_getProblems(vIsTodayRelative); + CALL ticket_getProblems(vIsTodayRelative); - SELECT * FROM tmp.sale_problems; + SELECT * FROM tmp.saleProblems; DROP TEMPORARY TABLE - tmp.sale_getProblems, - tmp.sale_problems; + tmp.ticket, + tmp.ticketProblems; END$$ DELIMITER ; diff --git a/db/routines/vn/procedures/ticket_getProblems.sql b/db/routines/vn/procedures/ticket_getProblems.sql index 1851bce47f..00a8ee7278 100644 --- a/db/routines/vn/procedures/ticket_getProblems.sql +++ b/db/routines/vn/procedures/ticket_getProblems.sql @@ -1,53 +1,216 @@ DELIMITER $$ CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `vn`.`ticket_getProblems`( - vIsTodayRelative tinyint(1) + vIsTodayRelative TINYINT(1) ) BEGIN /** * Calcula los problemas para un conjunto de tickets. * Agrupados por ticket * - * @table tmp.sale_getProblems(ticketFk, clientFk, warehouseFk, shipped) Identificadores de los tickets a calcular - * @return tmp.ticket_problems + * @table tmp.tmp.ticket(ticketFk) Identificadores de los tickets a calcular + * @return tmp.ticketProblems */ - CALL sale_getProblems(vIsTodayRelative); + DECLARE vWarehouseFk INT; + DECLARE vDate DATE; + DECLARE vAvailableCache INT; + DECLARE vVisibleCache INT; + DECLARE vDone BOOL; + DECLARE vCursor CURSOR FOR + SELECT DISTINCT t.warehouseFk, IF(vIsTodayRelative, util.VN_CURDATE(), DATE(t.shipped)) + FROM tmp.ticket t + JOIN ticket t ON t.id = t.ticketFk + WHERE t.shipped BETWEEN util.VN_CURDATE() + AND util.dayEnd(util.VN_CURDATE() + INTERVAL IF(vIsTodayRelative, 9.9, 1.9) DAY); - CREATE OR REPLACE TEMPORARY TABLE tmp.ticket_problems - (PRIMARY KEY (ticketFk)) + DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE; + + CREATE OR REPLACE TEMPORARY TABLE tmp.saleProblems( + ticketFk INT(11), + saleFk INT(11), + hasItemShortage BOOL DEFAULT FALSE, + hasItemLost BOOL DEFAULT FALSE, + hasItemDelay BOOL DEFAULT FALSE, + hasRounding BOOL DEFAULT FALSE, + PRIMARY KEY (ticketFk, saleFk) + ) ENGINE = MEMORY; + + CREATE OR REPLACE TEMPORARY TABLE tItemShelving + (INDEX (itemFk, warehouseFk)) ENGINE = MEMORY - SELECT ticketFk, - MAX(isFreezed) isFreezed, - MAX(risk) risk, - MAX(hasRisk) hasRisk, - MAX(hasHighRisk) hasHighRisk, - MAX(hasTicketRequest) hasTicketRequest, - MAX(itemShortage) itemShortage, - MIN(isTaxDataChecked) isTaxDataChecked, - MAX(hasComponentLack) hasComponentLack, - MAX(isTooLittle) isTooLittle, - MAX(itemDelay) itemDelay, - MAX(hasRounding) hasRounding, - MAX(itemLost) itemLost, - MAX(isVip) isVip, - 0 totalProblems - FROM tmp.sale_problems - GROUP BY ticketFk; + SELECT ish.itemFk itemFk, + SUM(ish.visible) visible, + s.warehouseFk warehouseFk + FROM itemShelving ish + JOIN shelving sh ON sh.code = ish.shelvingFk + JOIN parking p ON p.id = sh.parkingFk + JOIN sector s ON s.id = p.sectorFk + GROUP BY ish.itemFk, s.warehouseFk; + + -- Disponible, faltas, inventario y retrasos + OPEN vCursor; + l: LOOP + SET vDone = FALSE; + FETCH vCursor INTO vWarehouseFk, vDate; - UPDATE tmp.ticket_problems - SET totalProblems = ( - (isFreezed) + - (hasHighRisk) + - (hasTicketRequest) + - (!isTaxDataChecked) + - (hasComponentLack) + - (itemDelay IS NOT NULL) + - (isTooLittle) + - (itemLost IS NOT NULL) + - (hasRounding IS NOT NULL) + - (itemShortage IS NOT NULL) + - (isVip) - ); + IF vDone THEN + LEAVE l; + END IF; + + -- Disponible: no va a haber suficiente producto para preparar todos los pedidos + CALL cache.available_refresh(vAvailableCache, FALSE, vWarehouseFk, vDate); + + -- Faltas: visible, disponible y ubicado son menores que la cantidad vendida + CALL cache.visible_refresh(vVisibleCache, FALSE, vWarehouseFk); - DROP TEMPORARY TABLE tmp.sale_problems; + INSERT INTO tmp.saleProblems(ticketFk, saleFk, hasItemShortage) + SELECT tt.ticketFk, s.id, TRUE + FROM tmp.ticket tt + JOIN ticket t ON t.id = tt.ticketFk + JOIN sale s ON s.ticketFk = t.id + JOIN item i ON i.id = s.itemFk + JOIN itemType it ON it.id = i.typeFk + JOIN itemCategory ic ON ic.id = it.categoryFk + LEFT JOIN cache.visible v ON v.item_id = i.id + AND v.calc_id = vVisibleCache + LEFT JOIN cache.available av ON av.item_id = i.id + AND av.calc_id = vAvailableCache + LEFT JOIN tItemShelving tis ON tis.itemFk = i.id + AND tis.warehouseFk = t.warehouseFk + WHERE IFNULL(v.visible, 0) < s.quantity + AND IFNULL(av.available, 0) < s.quantity + AND IFNULL(tis.visible, 0) < s.quantity + AND NOT s.isPicked + AND NOT s.reserved + AND ic.merchandise + AND IF(vIsTodayRelative, TRUE, DATE(t.shipped) = vDate) + AND NOT i.generic + AND util.VN_CURDATE() = vDate + AND t.warehouseFk = vWarehouseFk + GROUP BY s.id; + + -- Inventario: Visible suficiente, pero ubicado menor a la cantidad vendida + INSERT INTO tmp.saleProblems(ticketFk, saleFk, hasItemLost) + SELECT tt.ticketFk, s.id, TRUE + FROM tmp.ticket tt + JOIN ticket t ON t.id = tt.ticketFk + JOIN sale s ON s.ticketFk = t.id + JOIN item i ON i.id = s.itemFk + JOIN itemType it ON it.id = i.typeFk + JOIN itemCategory ic ON ic.id = it.categoryFk + LEFT JOIN cache.visible v ON v.item_id = s.itemFk + AND v.calc_id = vVisibleCache + LEFT JOIN tItemShelving tis ON tis.itemFk = i.id + AND tis.warehouseFk = t.warehouseFk + WHERE IFNULL(v.visible, 0) >= s.quantity + AND IFNULL(tis.visible, 0) < s.quantity + AND s.quantity > 0 + AND NOT s.isPicked + AND NOT s.reserved + AND ic.merchandise + AND IF(vIsTodayRelative, TRUE, DATE(t.shipped) = vDate) + AND NOT i.generic + AND util.VN_CURDATE() = vDate + AND t.warehouseFk = vWarehouseFk + GROUP BY s.id + ON DUPLICATE KEY UPDATE hasItemLost = TRUE; + + -- Retraso: Disponible suficiente, pero no visible ni ubicado + INSERT INTO tmp.saleProblems(ticketFk, saleFk, hasItemDelay) + SELECT tt.ticketFk, s.id, TRUE + FROM tmp.ticket tt + JOIN ticket t ON t.id = tt.ticketFk + JOIN sale s ON s.ticketFk = t.id + JOIN item i ON i.id = s.itemFk + JOIN itemType it ON it.id = i.typeFk + JOIN itemCategory ic ON ic.id = it.categoryFk + LEFT JOIN cache.visible v ON v.item_id = s.itemFk + AND v.calc_id = vVisibleCache + LEFT JOIN cache.available av ON av.item_id = i.id + AND av.calc_id = vAvailableCache + LEFT JOIN tItemShelving tis ON tis.itemFk = i.id + AND tis.warehouseFk = t.warehouseFk + WHERE IFNULL(v.visible, 0) < s.quantity + AND IFNULL(av.available, 0) >= s.quantity + AND IFNULL(tis.visible, 0) < s.quantity + AND s.quantity > 0 + AND NOT s.isPicked + AND NOT s.reserved + AND ic.merchandise + AND IF(vIsTodayRelative, TRUE, DATE(t.shipped) = vDate) + AND NOT i.generic + AND util.VN_CURDATE() = vDate + AND t.warehouseFk = vWarehouseFk + GROUP BY s.id + ON DUPLICATE KEY UPDATE hasItemDelay = TRUE; + + -- Redondeo: cantidad incorrecta con respecto al grouping + CALL buy_getUltimate(NULL, vWarehouseFk, vDate); + + INSERT INTO tmp.saleProblems(ticketFk, saleFk, hasRounding) + SELECT tt.ticketFk, s.id, TRUE + FROM tmp.ticket tt + JOIN ticket t ON t.id = tt.ticketFk + AND t.warehouseFk = vWarehouseFk + JOIN sale s ON s.ticketFk = tt.ticketFk + JOIN item i ON i.id = s.itemFk + JOIN tmp.buyUltimate bu ON bu.itemFk = s.itemFk + JOIN buy b ON b.id = bu.buyFk + WHERE MOD(s.quantity, b.`grouping`) + GROUP BY s.id + ON DUPLICATE KEY UPDATE hasRounding = TRUE; + + DROP TEMPORARY TABLE tmp.buyUltimate; + END LOOP; + CLOSE vCursor; + + CREATE OR REPLACE TEMPORARY TABLE tmp.ticketProblem ( + ticketFk INT(11), + isFreezed BOOL DEFAULT FALSE, + risk DECIMAL(10,1) DEFAULT 0, + hasRisk BOOL DEFAULT FALSE, + hasHighRisk BOOL DEFAULT FALSE, + hasTicketRequest BOOL DEFAULT FALSE, + isTaxDataChecked BOOL DEFAULT FALSE, + isTooLittle BOOL DEFAULT FALSE, + isVip BOOL DEFAULT FALSE, + hasItemShortage BOOL DEFAULT FALSE, + hasItemDelay BOOL DEFAULT FALSE, + hasItemLost BOOL DEFAULT FALSE, + hasComponentLack BOOL DEFAULT FALSE, + hasRounding BOOL DEFAULT FALSE, + PRIMARY KEY (ticketFk) + ) ENGINE = MEMORY + SELECT tt.ticketFk, + IF(FIND_IN_SET('isFreezed', t.problem), TRUE, FALSE) isFreezed, + t.risk, + IF(FIND_IN_SET('hasRisk', t.problem), TRUE, FALSE) hasRisk, + IF(FIND_IN_SET('hasHighRisk', t.problem), TRUE, FALSE) hasHighRisk, + IF(FIND_IN_SET('hasTicketRequest', t.problem), TRUE, FALSE) hasTicketRequest, + IF(FIND_IN_SET('isTaxDataChecked', t.problem), FALSE, TRUE) isTaxDataChecked, + IF(FIND_IN_SET('isTooLittle', t.problem) + AND util.VN_NOW() < (util.VN_CURDATE() + INTERVAL HOUR(zc.`hour`) HOUR) + INTERVAL MINUTE(zc.`hour`) MINUTE, + TRUE, FALSE) isTooLittle, + IF(c.businessTypeFk = 'VIP', TRUE, FALSE) isVip, + SUM(IFNULL(ts.hasItemShortage,0)) hasItemShortage, + SUM(IFNULL(ts.hasItemDelay,0)) hasItemDelay, + SUM(IFNULL(ts.hasItemLost,0)) hasItemLost, + IF(FIND_IN_SET('hasComponentLack', s.problem), TRUE, FALSE) hasComponentLack, + SUM(IFNULL(ts.hasRounding,0)) hasRounding, + LEFT(CONCAT('F: ',GROUP_CONCAT(CONCAT(i.id, ' ', i.longName) SEPARATOR ', ')), 250) itemShortage, + LEFT(CONCAT('R: ',GROUP_CONCAT(CONCAT(i2.id, ' ', i2.longName) SEPARATOR ', ')), 250) itemDelay, + LEFT(CONCAT('I: ',GROUP_CONCAT(CONCAT(i3.id, ' ', i3.longName) SEPARATOR ', ')), 250) itemLost, + LEFT(CONCAT('RE: ',GROUP_CONCAT(CONCAT(i4.id, ' ', i4.longName) SEPARATOR ', ')), 250) componentLack, + LEFT(CONCAT('RE: ',GROUP_CONCAT(CONCAT(i5.id, ' ', i5.longName) SEPARATOR ', ')), 250) rounding + FROM tmp.ticket tt + JOIN ticket t ON t.id = tt.ticketFk + JOIN client c ON c.id = t.clientFk + LEFT JOIN sale s ON s.ticketFk = t.id + LEFT JOIN tmp.saleProblems ts ON ts.saleFk = s.id + LEFT JOIN zoneClosure zc ON zc.zoneFk = t.zoneFk + AND zc.dated = util.VN_CURDATE() + WHERE s.problem <> '' OR t.problem <> '' OR t.risk + GROUP BY t.id; + + DROP TEMPORARY TABLE tItemShelving; END$$ DELIMITER ; diff --git a/modules/monitor/back/methods/sales-monitor/salesFilter.js b/modules/monitor/back/methods/sales-monitor/salesFilter.js index 927f49999f..9b22cb2d26 100644 --- a/modules/monitor/back/methods/sales-monitor/salesFilter.js +++ b/modules/monitor/back/methods/sales-monitor/salesFilter.js @@ -239,10 +239,10 @@ module.exports = Self => { stmts.push(`SET SESSION optimizer_search_depth = @_optimizer_search_depth`); stmt = new ParameterizedSQL(` - CREATE OR REPLACE TEMPORARY TABLE tmp.sale_getProblems + CREATE OR REPLACE TEMPORARY TABLE tmp.ticket (INDEX (ticketFk)) ENGINE = MEMORY - SELECT f.id ticketFk, f.clientFk, f.warehouseFk, f.shipped + SELECT f.id ticketFk FROM tmp.filter f LEFT JOIN alertLevel al ON al.id = f.alertLevel WHERE (al.code = 'FREE' OR f.alertLevel IS NULL) @@ -263,7 +263,7 @@ module.exports = Self => { stmts.push('CALL ticket_getWarnings()'); stmt = new ParameterizedSQL(` - UPDATE tmp.ticket_problems + UPDATE tmp.ticketProblems SET risk = IF(hasRisk, risk, 0) `); stmts.push(stmt); @@ -271,7 +271,7 @@ module.exports = Self => { stmt = new ParameterizedSQL(` SELECT * FROM tmp.filter f - LEFT JOIN tmp.ticket_problems tp ON tp.ticketFk = f.id + LEFT JOIN tmp.ticketProblems tp ON tp.ticketFk = f.id LEFT JOIN tmp.ticket_warnings tw ON tw.ticketFk = f.id `); stmts.push(stmt); @@ -376,8 +376,7 @@ module.exports = Self => { stmts.push(` DROP TEMPORARY TABLE tmp.filter, - tmp.ticket_problems, - tmp.sale_getProblems, + tmp.ticketProblem, tmp.sale_getWarnings, tmp.ticket_warnings `); diff --git a/modules/ticket/back/methods/ticket/filter.js b/modules/ticket/back/methods/ticket/filter.js index c98ddaab60..9ac239be77 100644 --- a/modules/ticket/back/methods/ticket/filter.js +++ b/modules/ticket/back/methods/ticket/filter.js @@ -293,10 +293,10 @@ module.exports = Self => { stmts.push(stmt); stmt = new ParameterizedSQL(` - CREATE OR REPLACE TEMPORARY TABLE tmp.sale_getProblems + CREATE OR REPLACE TEMPORARY TABLE tmp.ticket (INDEX (ticketFk)) ENGINE = MEMORY - SELECT f.id ticketFk, f.clientFk, f.warehouseFk, f.shipped + SELECT f.id ticketFk FROM tmp.filter f LEFT JOIN alertLevel al ON al.id = f.alertLevel WHERE (al.code = 'FREE' OR f.alertLevel IS NULL) @@ -307,7 +307,7 @@ module.exports = Self => { stmts.push('CALL ticket_getProblems(FALSE)'); stmt = new ParameterizedSQL(` - UPDATE tmp.ticket_problems + UPDATE tmp.ticketProblems SET risk = IF(hasRisk, risk, 0) `); stmts.push(stmt); @@ -315,7 +315,7 @@ module.exports = Self => { stmt = new ParameterizedSQL(` SELECT f.*, tp.* FROM tmp.filter f - LEFT JOIN tmp.ticket_problems tp ON tp.ticketFk = f.id + LEFT JOIN tmp.ticketProblems tp ON tp.ticketFk = f.id `); if (args.problems != undefined && (!args.from && !args.to)) @@ -371,7 +371,7 @@ module.exports = Self => { stmts.push( `DROP TEMPORARY TABLE tmp.filter, - tmp.ticket_problems`); + tmp.ticketProblems`); const sql = ParameterizedSQL.join(stmts, ';'); const result = await conn.executeStmt(sql, myOptions); diff --git a/modules/ticket/back/methods/ticket/getTicketsFuture.js b/modules/ticket/back/methods/ticket/getTicketsFuture.js index 2479245912..1c31da057c 100644 --- a/modules/ticket/back/methods/ticket/getTicketsFuture.js +++ b/modules/ticket/back/methods/ticket/getTicketsFuture.js @@ -146,10 +146,10 @@ module.exports = Self => { stmts.push(stmt); stmt = new ParameterizedSQL(` - CREATE OR REPLACE TEMPORARY TABLE tmp.sale_getProblems + CREATE OR REPLACE TEMPORARY TABLE tmp.ticket (INDEX (ticketFk)) ENGINE = MEMORY - SELECT f.id ticketFk, f.clientFk, f.warehouseFk, f.shipped, f.lines, f.liters + SELECT f.id ticketFk FROM tmp.filter f LEFT JOIN alertLevel al ON al.id = f.alertLevel WHERE (al.code = 'FREE' OR f.alertLevel IS NULL) @@ -159,7 +159,7 @@ module.exports = Self => { stmts.push('CALL ticket_getProblems(FALSE)'); stmt = new ParameterizedSQL(` - UPDATE tmp.ticket_problems + UPDATE tmp.ticketProblems SET risk = IF(hasRisk, risk, 0) `); stmts.push(stmt); @@ -167,7 +167,7 @@ module.exports = Self => { stmt = new ParameterizedSQL(` SELECT f.*, tp.* FROM tmp.filter f - LEFT JOIN tmp.ticket_problems tp ON tp.ticketFk = f.id + LEFT JOIN tmp.ticketProblems tp ON tp.ticketFk = f.id `); if (args.problems != undefined && (!args.originScopeDays && !args.futureScopeDays)) @@ -217,7 +217,7 @@ module.exports = Self => { stmts.push( `DROP TEMPORARY TABLE tmp.filter, - tmp.ticket_problems`); + tmp.ticketProblems`); const sql = ParameterizedSQL.join(stmts, ';'); const result = await conn.executeStmt(sql, myOptions); From 750b83bb45efd8be2f95d148567a511a9288417e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Andr=C3=A9s?= Date: Mon, 16 Sep 2024 19:03:12 +0200 Subject: [PATCH 013/149] fix: refs #7760 tmp.ticketIPT --- db/routines/vn/procedures/productionControl.sql | 2 +- db/routines/vn/procedures/ticket_getProblems.sql | 11 ++++++++--- .../monitor/back/methods/sales-monitor/salesFilter.js | 2 +- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/db/routines/vn/procedures/productionControl.sql b/db/routines/vn/procedures/productionControl.sql index 88ed42e837..b33224e80c 100644 --- a/db/routines/vn/procedures/productionControl.sql +++ b/db/routines/vn/procedures/productionControl.sql @@ -105,7 +105,7 @@ proc: BEGIN AND DATE(t.shipped) = zc.dated LEFT JOIN ticketParking tp ON tp.ticketFk = t.id LEFT JOIN parking pk ON pk.id = tp.parkingFk - LEFT JOIN tmp.ticketProblem tpr ON tpr.ticketFk = tt.ticketFk + LEFT JOIN tmp.ticketProblems tpr ON tpr.ticketFk = tt.ticketFk WHERE t.warehouseFk = vWarehouseFk AND dm.code IN ('AGENCY', 'DELIVERY', 'PICKUP'); diff --git a/db/routines/vn/procedures/ticket_getProblems.sql b/db/routines/vn/procedures/ticket_getProblems.sql index 00a8ee7278..f718893eb1 100644 --- a/db/routines/vn/procedures/ticket_getProblems.sql +++ b/db/routines/vn/procedures/ticket_getProblems.sql @@ -7,7 +7,7 @@ BEGIN * Calcula los problemas para un conjunto de tickets. * Agrupados por ticket * - * @table tmp.tmp.ticket(ticketFk) Identificadores de los tickets a calcular + * @table tmp.ticket(ticketFk) Identificadores de los tickets a calcular * @return tmp.ticketProblems */ DECLARE vWarehouseFk INT; @@ -163,7 +163,7 @@ BEGIN END LOOP; CLOSE vCursor; - CREATE OR REPLACE TEMPORARY TABLE tmp.ticketProblem ( + CREATE OR REPLACE TEMPORARY TABLE tmp.ticketProblems ( ticketFk INT(11), isFreezed BOOL DEFAULT FALSE, risk DECIMAL(10,1) DEFAULT 0, @@ -199,13 +199,18 @@ BEGIN LEFT(CONCAT('F: ',GROUP_CONCAT(CONCAT(i.id, ' ', i.longName) SEPARATOR ', ')), 250) itemShortage, LEFT(CONCAT('R: ',GROUP_CONCAT(CONCAT(i2.id, ' ', i2.longName) SEPARATOR ', ')), 250) itemDelay, LEFT(CONCAT('I: ',GROUP_CONCAT(CONCAT(i3.id, ' ', i3.longName) SEPARATOR ', ')), 250) itemLost, - LEFT(CONCAT('RE: ',GROUP_CONCAT(CONCAT(i4.id, ' ', i4.longName) SEPARATOR ', ')), 250) componentLack, + LEFT(CONCAT('C: ',GROUP_CONCAT(CONCAT(i4.id, ' ', i4.longName) SEPARATOR ', ')), 250) componentLack, LEFT(CONCAT('RE: ',GROUP_CONCAT(CONCAT(i5.id, ' ', i5.longName) SEPARATOR ', ')), 250) rounding FROM tmp.ticket tt JOIN ticket t ON t.id = tt.ticketFk JOIN client c ON c.id = t.clientFk LEFT JOIN sale s ON s.ticketFk = t.id LEFT JOIN tmp.saleProblems ts ON ts.saleFk = s.id + LEFT JOIN item i ON i.id = s.itemFk AND ts.hasItemShortage + LEFT JOIN item i2 ON i2.id = s.itemFk AND ts.hasItemDelay + LEFT JOIN item i3 ON i3.id = s.itemFk AND ts.hasItemLost + LEFT JOIN item i4 ON i4.id = s.itemFk AND FIND_IN_SET('hasComponentLack', s.problem) + LEFT JOIN item i5 ON i5.id = s.itemFk AND ts.hasRounding LEFT JOIN zoneClosure zc ON zc.zoneFk = t.zoneFk AND zc.dated = util.VN_CURDATE() WHERE s.problem <> '' OR t.problem <> '' OR t.risk diff --git a/modules/monitor/back/methods/sales-monitor/salesFilter.js b/modules/monitor/back/methods/sales-monitor/salesFilter.js index 9b22cb2d26..70c750ef57 100644 --- a/modules/monitor/back/methods/sales-monitor/salesFilter.js +++ b/modules/monitor/back/methods/sales-monitor/salesFilter.js @@ -376,7 +376,7 @@ module.exports = Self => { stmts.push(` DROP TEMPORARY TABLE tmp.filter, - tmp.ticketProblem, + tmp.ticketProblems, tmp.sale_getWarnings, tmp.ticket_warnings `); From 712bfe73680a149bb6b292a18ef99a058db66616 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Andr=C3=A9s?= Date: Thu, 19 Sep 2024 20:15:38 +0200 Subject: [PATCH 014/149] fix: refs #7965 UnifyProblems --- .../vn/procedures/productionControl.sql | 61 +++--- .../vn/procedures/sale_getProblems.sql | 168 +++++++++++++++++ .../procedures/sale_getProblemsByTicket.sql | 19 +- .../vn/procedures/ticket_getProblems.sql | 177 ++---------------- 4 files changed, 226 insertions(+), 199 deletions(-) create mode 100644 db/routines/vn/procedures/sale_getProblems.sql diff --git a/db/routines/vn/procedures/productionControl.sql b/db/routines/vn/procedures/productionControl.sql index b33224e80c..294ac3486f 100644 --- a/db/routines/vn/procedures/productionControl.sql +++ b/db/routines/vn/procedures/productionControl.sql @@ -36,6 +36,19 @@ proc: BEGIN CREATE OR REPLACE TEMPORARY TABLE tmp.productionBuffer (PRIMARY KEY(ticketFk), previaParking VARCHAR(255)) ENGINE = MEMORY + WITH saleProblemsDescription AS( + SELECT s.ticketFk, + LEFT(CONCAT('F: ', GROUP_CONCAT(CONCAT(i.id, ' ', i.longName) SEPARATOR ', ')), 250) itemShortage, + LEFT(CONCAT('R: ', GROUP_CONCAT(CONCAT(i2.id, ' ', i2.longName) SEPARATOR ', ')), 250) itemDelay, + LEFT(CONCAT('I: ', GROUP_CONCAT(CONCAT(i3.id, ' ', i3.longName) SEPARATOR ', ')), 250) itemLost + FROM tmp.saleProblems sp + JOIN vn.sale s ON s.id = sp.saleFk + LEFT JOIN vn.item i ON i.id = s.itemFk AND sp.hasItemShortage + LEFT JOIN vn.item i2 ON i2.id = s.itemFk AND sp.hasItemDelay + LEFT JOIN vn.item i3 ON i3.id = s.itemFk AND sp.hasItemLost + WHERE hasItemShortage OR hasItemDelay OR hasItemLost + GROUP BY s.ticketFk + ) SELECT tt.ticketFk, t.clientFk, t.warehouseFk, @@ -55,9 +68,9 @@ proc: BEGIN 0 `lines`, CAST( 0 AS DECIMAL(5,2)) m3, CAST( 0 AS DECIMAL(5,2)) preparationRate, - TRIM(CAST(CONCAT( IFNULL(tpr.itemShortage, ''), - IFNULL(tpr.itemDelay, ''), - IFNULL(tpr.itemLost, ''), + TRIM(CAST(CONCAT( IFNULL(sp.itemShortage, ''), + IFNULL(sp.itemDelay, ''), + IFNULL(sp.itemLost, ''), IF(tpr.isFreezed, ' CONGELADO',''), IF(tpr.hasHighRisk, ' RIESGO',''), IF(tpr.hasTicketRequest, ' COD 100',''), @@ -85,30 +98,31 @@ proc: BEGIN ag.isOwn, rm.bufferFk FROM tmp.productionTicket tt - JOIN ticket t ON tt.ticketFk = t.id - JOIN alertLevel al ON al.code = 'FREE' - LEFT JOIN ticketStateToday tst ON tst.ticketFk = t.id - LEFT JOIN `state` st ON st.id = tst.state - LEFT JOIN client c ON c.id = t.clientFk - LEFT JOIN worker wk ON wk.id = c.salesPersonFk - JOIN address a ON a.id = t.addressFk - LEFT JOIN province p ON p.id = a.provinceFk - JOIN agencyMode am ON am.id = t.agencyModeFk - JOIN deliveryMethod dm ON dm.id = am.deliveryMethodFk - JOIN agency ag ON ag.id = am.agencyFk - LEFT JOIN ticketState tls ON tls.ticketFk = tt.ticketFk - LEFT JOIN ticketLastUpdated tlu ON tlu.ticketFk = tt.ticketFk - LEFT JOIN worker w ON w.id = tls.userFk - LEFT JOIN routesMonitor rm ON rm.routeFk = t.routeFk - LEFT JOIN `zone` z ON z.id = t.zoneFk - LEFT JOIN zoneClosure zc ON zc.zoneFk = t.zoneFk + JOIN vn.ticket t ON tt.ticketFk = t.id + JOIN vn.alertLevel al ON al.code = 'FREE' + LEFT JOIN vn.ticketStateToday tst ON tst.ticketFk = t.id + LEFT JOIN vn.`state` st ON st.id = tst.state + LEFT JOIN vn.client c ON c.id = t.clientFk + LEFT JOIN vn.worker wk ON wk.id = c.salesPersonFk + JOIN vn.address a ON a.id = t.addressFk + LEFT JOIN vn.province p ON p.id = a.provinceFk + JOIN vn.agencyMode am ON am.id = t.agencyModeFk + JOIN vn.deliveryMethod dm ON dm.id = am.deliveryMethodFk + JOIN vn.agency ag ON ag.id = am.agencyFk + LEFT JOIN vn.ticketState tls ON tls.ticketFk = tt.ticketFk + LEFT JOIN vn.ticketLastUpdated tlu ON tlu.ticketFk = tt.ticketFk + LEFT JOIN vn.worker w ON w.id = tls.userFk + LEFT JOIN vn.routesMonitor rm ON rm.routeFk = t.routeFk + LEFT JOIN vn.`zone` z ON z.id = t.zoneFk + LEFT JOIN vn.zoneClosure zc ON zc.zoneFk = t.zoneFk AND DATE(t.shipped) = zc.dated - LEFT JOIN ticketParking tp ON tp.ticketFk = t.id - LEFT JOIN parking pk ON pk.id = tp.parkingFk + LEFT JOIN vn.ticketParking tp ON tp.ticketFk = t.id + LEFT JOIN vn.parking pk ON pk.id = tp.parkingFk LEFT JOIN tmp.ticketProblems tpr ON tpr.ticketFk = tt.ticketFk + LEFT JOIN saleProblemsDescription sp ON sp.ticketFk = tt.ticketFk WHERE t.warehouseFk = vWarehouseFk AND dm.code IN ('AGENCY', 'DELIVERY', 'PICKUP'); - + UPDATE tmp.productionBuffer pb JOIN ( SELECT pb.ticketFk, GROUP_CONCAT(p.code) previaParking @@ -260,6 +274,7 @@ proc: BEGIN DROP TEMPORARY TABLE tmp.productionTicket, tmp.ticketProblems, + tmp.saleProblems, tmp.ticketWithPrevia, tItemShelvingStock, tItemPackingType; diff --git a/db/routines/vn/procedures/sale_getProblems.sql b/db/routines/vn/procedures/sale_getProblems.sql new file mode 100644 index 0000000000..a8388034f9 --- /dev/null +++ b/db/routines/vn/procedures/sale_getProblems.sql @@ -0,0 +1,168 @@ +DELIMITER $$ +CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `vn`.`sale_getProblems`( + vIsTodayRelative TINYINT(1) +) +BEGIN +/** + * Calcula los problemas para un conjunto de sale + * + * @table tmp.sale(saleFk) Identificadores de los sale a calcular + * @return tmp.saleProblems + */ + DECLARE vWarehouseFk INT; + DECLARE vDate DATE; + DECLARE vAvailableCache INT; + DECLARE vVisibleCache INT; + DECLARE vDone BOOL; + DECLARE vCursor CURSOR FOR + SELECT t.warehouseFk, IF(vIsTodayRelative, util.VN_CURDATE(), DATE(t.shipped)) dated + FROM tmp.sale ts + JOIN sale s ON s.id = ts.saleFk + JOIN ticket t ON t.id = s.ticketFk + WHERE t.shipped BETWEEN util.VN_CURDATE() + AND util.dayEnd(util.VN_CURDATE() + INTERVAL IF(vIsTodayRelative, 9.9, 1.9) DAY) + GROUP BY warehouseFk, dated; + + DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE; + + CREATE OR REPLACE TEMPORARY TABLE tmp.saleProblems( + saleFk INT(11), + hasItemShortage BOOL DEFAULT FALSE, + hasItemLost BOOL DEFAULT FALSE, + hasItemDelay BOOL DEFAULT FALSE, + hasRounding BOOL DEFAULT FALSE, + PRIMARY KEY (saleFk) + ) ENGINE = MEMORY; + + CREATE OR REPLACE TEMPORARY TABLE tItemShelving + (INDEX (itemFk, warehouseFk)) + ENGINE = MEMORY + SELECT ish.itemFk itemFk, + SUM(ish.visible) visible, + s.warehouseFk warehouseFk + FROM itemShelving ish + JOIN shelving sh ON sh.code = ish.shelvingFk + JOIN parking p ON p.id = sh.parkingFk + JOIN sector s ON s.id = p.sectorFk + GROUP BY ish.itemFk, s.warehouseFk; + + -- Disponible, faltas, inventario y retrasos + OPEN vCursor; + l: LOOP + SET vDone = FALSE; + FETCH vCursor INTO vWarehouseFk, vDate; + + IF vDone THEN + LEAVE l; + END IF; + + -- Disponible: no va a haber suficiente producto para preparar todos los pedidos + CALL cache.available_refresh(vAvailableCache, FALSE, vWarehouseFk, vDate); + + -- Faltas: visible, disponible y ubicado son menores que la cantidad vendida + CALL cache.visible_refresh(vVisibleCache, FALSE, vWarehouseFk); + + INSERT INTO tmp.saleProblems(saleFk, hasItemShortage) + SELECT s.id, TRUE + FROM tmp.sale ts + JOIN sale s ON s.id = ts.saleFk + JOIN ticket t ON t.id = s.ticketFk + JOIN item i ON i.id = s.itemFk + JOIN itemType it ON it.id = i.typeFk + JOIN itemCategory ic ON ic.id = it.categoryFk + LEFT JOIN cache.visible v ON v.item_id = i.id + AND v.calc_id = vVisibleCache + LEFT JOIN cache.available av ON av.item_id = i.id + AND av.calc_id = vAvailableCache + LEFT JOIN tItemShelving tis ON tis.itemFk = i.id + AND tis.warehouseFk = t.warehouseFk + WHERE IFNULL(v.visible, 0) < s.quantity + AND IFNULL(av.available, 0) < s.quantity + AND IFNULL(tis.visible, 0) < s.quantity + AND NOT s.isPicked + AND NOT s.reserved + AND ic.merchandise + AND IF(vIsTodayRelative, TRUE, DATE(t.shipped) = vDate) + AND NOT i.generic + AND util.VN_CURDATE() = vDate + AND t.warehouseFk = vWarehouseFk + GROUP BY s.id; + + -- Inventario: Visible suficiente, pero ubicado menor a la cantidad vendida + INSERT INTO tmp.saleProblems(saleFk, hasItemLost) + SELECT s.id, TRUE + FROM tmp.sale ts + JOIN sale s ON s.id = ts.saleFk + JOIN ticket t ON t.id = s.ticketFk + JOIN item i ON i.id = s.itemFk + JOIN itemType it ON it.id = i.typeFk + JOIN itemCategory ic ON ic.id = it.categoryFk + LEFT JOIN cache.visible v ON v.item_id = s.itemFk + AND v.calc_id = vVisibleCache + LEFT JOIN tItemShelving tis ON tis.itemFk = i.id + AND tis.warehouseFk = t.warehouseFk + WHERE IFNULL(v.visible, 0) >= s.quantity + AND IFNULL(tis.visible, 0) < s.quantity + AND s.quantity > 0 + AND NOT s.isPicked + AND NOT s.reserved + AND ic.merchandise + AND IF(vIsTodayRelative, TRUE, DATE(t.shipped) = vDate) + AND NOT i.generic + AND util.VN_CURDATE() = vDate + AND t.warehouseFk = vWarehouseFk + GROUP BY s.id + ON DUPLICATE KEY UPDATE hasItemLost = TRUE; + + -- Retraso: Disponible suficiente, pero no visible ni ubicado + INSERT INTO tmp.saleProblems(saleFk, hasItemDelay) + SELECT s.id, TRUE + FROM tmp.sale ts + JOIN sale s ON s.id = ts.saleFk + JOIN ticket t ON t.id = s.ticketFk + JOIN item i ON i.id = s.itemFk + JOIN itemType it ON it.id = i.typeFk + JOIN itemCategory ic ON ic.id = it.categoryFk + LEFT JOIN cache.visible v ON v.item_id = s.itemFk + AND v.calc_id = vVisibleCache + LEFT JOIN cache.available av ON av.item_id = i.id + AND av.calc_id = vAvailableCache + LEFT JOIN tItemShelving tis ON tis.itemFk = i.id + AND tis.warehouseFk = t.warehouseFk + WHERE IFNULL(v.visible, 0) < s.quantity + AND IFNULL(av.available, 0) >= s.quantity + AND IFNULL(tis.visible, 0) < s.quantity + AND s.quantity > 0 + AND NOT s.isPicked + AND NOT s.reserved + AND ic.merchandise + AND IF(vIsTodayRelative, TRUE, DATE(t.shipped) = vDate) + AND NOT i.generic + AND util.VN_CURDATE() = vDate + AND t.warehouseFk = vWarehouseFk + GROUP BY s.id + ON DUPLICATE KEY UPDATE hasItemDelay = TRUE; + + -- Redondeo: cantidad incorrecta con respecto al grouping + CALL buy_getUltimate(NULL, vWarehouseFk, vDate); + + INSERT INTO tmp.saleProblems(saleFk, hasRounding) + SELECT s.id, TRUE + FROM tmp.sale ts + JOIN sale s ON s.id = ts.saleFk + JOIN ticket t ON t.id = s.ticketFk + AND t.warehouseFk = vWarehouseFk + JOIN item i ON i.id = s.itemFk + JOIN tmp.buyUltimate bu ON bu.itemFk = s.itemFk + JOIN buy b ON b.id = bu.buyFk + WHERE MOD(s.quantity, b.`grouping`) + GROUP BY s.id + ON DUPLICATE KEY UPDATE hasRounding = TRUE; + + DROP TEMPORARY TABLE tmp.buyUltimate; + END LOOP; + CLOSE vCursor; + + DROP TEMPORARY TABLE tItemShelving, tmp.sale; +END$$ +DELIMITER ; diff --git a/db/routines/vn/procedures/sale_getProblemsByTicket.sql b/db/routines/vn/procedures/sale_getProblemsByTicket.sql index af69e84300..708938cba0 100644 --- a/db/routines/vn/procedures/sale_getProblemsByTicket.sql +++ b/db/routines/vn/procedures/sale_getProblemsByTicket.sql @@ -5,22 +5,19 @@ CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `vn`.`sale_getProblemsByTic ) BEGIN /** - * Calcula los problemas de cada venta - * para un conjunto de tickets. + * Calcula los problemas de cada venta para un tickets. * * @return Problems result */ - CREATE OR REPLACE TEMPORARY TABLE tmp.ticket - (INDEX (ticketFk)) - ENGINE = MEMORY - SELECT vTicketFk ticketFk; + CREATE OR REPLACE TEMPORARY TABLE tmp.sale + (INDEX (saleFk)) + ENGINE = MEMORY + SELECT id saleFk FROM sale WHERE ticketFk = vTicketFk; - CALL ticket_getProblems(vIsTodayRelative); + CALL sale_getProblems(vIsTodayRelative); - SELECT * FROM tmp.saleProblems; + SELECT * FROM tmp.saleProblems; - DROP TEMPORARY TABLE - tmp.ticket, - tmp.ticketProblems; + DROP TEMPORARY TABLE tmp.saleProblems; END$$ DELIMITER ; diff --git a/db/routines/vn/procedures/ticket_getProblems.sql b/db/routines/vn/procedures/ticket_getProblems.sql index f718893eb1..c5a1532ff7 100644 --- a/db/routines/vn/procedures/ticket_getProblems.sql +++ b/db/routines/vn/procedures/ticket_getProblems.sql @@ -5,163 +5,23 @@ CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `vn`.`ticket_getProblems`( BEGIN /** * Calcula los problemas para un conjunto de tickets. - * Agrupados por ticket * * @table tmp.ticket(ticketFk) Identificadores de los tickets a calcular - * @return tmp.ticketProblems + * @return tmp.ticketProblems, tmp.saleProblems */ - DECLARE vWarehouseFk INT; - DECLARE vDate DATE; - DECLARE vAvailableCache INT; - DECLARE vVisibleCache INT; - DECLARE vDone BOOL; - DECLARE vCursor CURSOR FOR - SELECT DISTINCT t.warehouseFk, IF(vIsTodayRelative, util.VN_CURDATE(), DATE(t.shipped)) - FROM tmp.ticket t - JOIN ticket t ON t.id = t.ticketFk - WHERE t.shipped BETWEEN util.VN_CURDATE() - AND util.dayEnd(util.VN_CURDATE() + INTERVAL IF(vIsTodayRelative, 9.9, 1.9) DAY); - - DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE; - - CREATE OR REPLACE TEMPORARY TABLE tmp.saleProblems( - ticketFk INT(11), + CREATE OR REPLACE TEMPORARY TABLE tmp.sale ( saleFk INT(11), - hasItemShortage BOOL DEFAULT FALSE, - hasItemLost BOOL DEFAULT FALSE, - hasItemDelay BOOL DEFAULT FALSE, - hasRounding BOOL DEFAULT FALSE, - PRIMARY KEY (ticketFk, saleFk) - ) ENGINE = MEMORY; - - CREATE OR REPLACE TEMPORARY TABLE tItemShelving - (INDEX (itemFk, warehouseFk)) - ENGINE = MEMORY - SELECT ish.itemFk itemFk, - SUM(ish.visible) visible, - s.warehouseFk warehouseFk - FROM itemShelving ish - JOIN shelving sh ON sh.code = ish.shelvingFk - JOIN parking p ON p.id = sh.parkingFk - JOIN sector s ON s.id = p.sectorFk - GROUP BY ish.itemFk, s.warehouseFk; - - -- Disponible, faltas, inventario y retrasos - OPEN vCursor; - l: LOOP - SET vDone = FALSE; - FETCH vCursor INTO vWarehouseFk, vDate; - - IF vDone THEN - LEAVE l; - END IF; - - -- Disponible: no va a haber suficiente producto para preparar todos los pedidos - CALL cache.available_refresh(vAvailableCache, FALSE, vWarehouseFk, vDate); - - -- Faltas: visible, disponible y ubicado son menores que la cantidad vendida - CALL cache.visible_refresh(vVisibleCache, FALSE, vWarehouseFk); - - INSERT INTO tmp.saleProblems(ticketFk, saleFk, hasItemShortage) - SELECT tt.ticketFk, s.id, TRUE - FROM tmp.ticket tt - JOIN ticket t ON t.id = tt.ticketFk - JOIN sale s ON s.ticketFk = t.id - JOIN item i ON i.id = s.itemFk - JOIN itemType it ON it.id = i.typeFk - JOIN itemCategory ic ON ic.id = it.categoryFk - LEFT JOIN cache.visible v ON v.item_id = i.id - AND v.calc_id = vVisibleCache - LEFT JOIN cache.available av ON av.item_id = i.id - AND av.calc_id = vAvailableCache - LEFT JOIN tItemShelving tis ON tis.itemFk = i.id - AND tis.warehouseFk = t.warehouseFk - WHERE IFNULL(v.visible, 0) < s.quantity - AND IFNULL(av.available, 0) < s.quantity - AND IFNULL(tis.visible, 0) < s.quantity - AND NOT s.isPicked - AND NOT s.reserved - AND ic.merchandise - AND IF(vIsTodayRelative, TRUE, DATE(t.shipped) = vDate) - AND NOT i.generic - AND util.VN_CURDATE() = vDate - AND t.warehouseFk = vWarehouseFk + PRIMARY KEY (saleFk) + ) ENGINE = MEMORY + SELECT DISTINCT s.id saleFk + FROM tmp.ticket tt + JOIN ticket t ON t.id = tt.ticketFk + JOIN sale s ON s.ticketFk = t.id + WHERE t.shipped BETWEEN util.VN_CURDATE() + AND util.dayEnd(util.VN_CURDATE() + INTERVAL IF(vIsTodayRelative, 9.9, 1.9) DAY) GROUP BY s.id; - -- Inventario: Visible suficiente, pero ubicado menor a la cantidad vendida - INSERT INTO tmp.saleProblems(ticketFk, saleFk, hasItemLost) - SELECT tt.ticketFk, s.id, TRUE - FROM tmp.ticket tt - JOIN ticket t ON t.id = tt.ticketFk - JOIN sale s ON s.ticketFk = t.id - JOIN item i ON i.id = s.itemFk - JOIN itemType it ON it.id = i.typeFk - JOIN itemCategory ic ON ic.id = it.categoryFk - LEFT JOIN cache.visible v ON v.item_id = s.itemFk - AND v.calc_id = vVisibleCache - LEFT JOIN tItemShelving tis ON tis.itemFk = i.id - AND tis.warehouseFk = t.warehouseFk - WHERE IFNULL(v.visible, 0) >= s.quantity - AND IFNULL(tis.visible, 0) < s.quantity - AND s.quantity > 0 - AND NOT s.isPicked - AND NOT s.reserved - AND ic.merchandise - AND IF(vIsTodayRelative, TRUE, DATE(t.shipped) = vDate) - AND NOT i.generic - AND util.VN_CURDATE() = vDate - AND t.warehouseFk = vWarehouseFk - GROUP BY s.id - ON DUPLICATE KEY UPDATE hasItemLost = TRUE; - - -- Retraso: Disponible suficiente, pero no visible ni ubicado - INSERT INTO tmp.saleProblems(ticketFk, saleFk, hasItemDelay) - SELECT tt.ticketFk, s.id, TRUE - FROM tmp.ticket tt - JOIN ticket t ON t.id = tt.ticketFk - JOIN sale s ON s.ticketFk = t.id - JOIN item i ON i.id = s.itemFk - JOIN itemType it ON it.id = i.typeFk - JOIN itemCategory ic ON ic.id = it.categoryFk - LEFT JOIN cache.visible v ON v.item_id = s.itemFk - AND v.calc_id = vVisibleCache - LEFT JOIN cache.available av ON av.item_id = i.id - AND av.calc_id = vAvailableCache - LEFT JOIN tItemShelving tis ON tis.itemFk = i.id - AND tis.warehouseFk = t.warehouseFk - WHERE IFNULL(v.visible, 0) < s.quantity - AND IFNULL(av.available, 0) >= s.quantity - AND IFNULL(tis.visible, 0) < s.quantity - AND s.quantity > 0 - AND NOT s.isPicked - AND NOT s.reserved - AND ic.merchandise - AND IF(vIsTodayRelative, TRUE, DATE(t.shipped) = vDate) - AND NOT i.generic - AND util.VN_CURDATE() = vDate - AND t.warehouseFk = vWarehouseFk - GROUP BY s.id - ON DUPLICATE KEY UPDATE hasItemDelay = TRUE; - - -- Redondeo: cantidad incorrecta con respecto al grouping - CALL buy_getUltimate(NULL, vWarehouseFk, vDate); - - INSERT INTO tmp.saleProblems(ticketFk, saleFk, hasRounding) - SELECT tt.ticketFk, s.id, TRUE - FROM tmp.ticket tt - JOIN ticket t ON t.id = tt.ticketFk - AND t.warehouseFk = vWarehouseFk - JOIN sale s ON s.ticketFk = tt.ticketFk - JOIN item i ON i.id = s.itemFk - JOIN tmp.buyUltimate bu ON bu.itemFk = s.itemFk - JOIN buy b ON b.id = bu.buyFk - WHERE MOD(s.quantity, b.`grouping`) - GROUP BY s.id - ON DUPLICATE KEY UPDATE hasRounding = TRUE; - - DROP TEMPORARY TABLE tmp.buyUltimate; - END LOOP; - CLOSE vCursor; + CALL sale_getProblems(vIsTodayRelative); CREATE OR REPLACE TEMPORARY TABLE tmp.ticketProblems ( ticketFk INT(11), @@ -195,27 +55,14 @@ BEGIN SUM(IFNULL(ts.hasItemDelay,0)) hasItemDelay, SUM(IFNULL(ts.hasItemLost,0)) hasItemLost, IF(FIND_IN_SET('hasComponentLack', s.problem), TRUE, FALSE) hasComponentLack, - SUM(IFNULL(ts.hasRounding,0)) hasRounding, - LEFT(CONCAT('F: ',GROUP_CONCAT(CONCAT(i.id, ' ', i.longName) SEPARATOR ', ')), 250) itemShortage, - LEFT(CONCAT('R: ',GROUP_CONCAT(CONCAT(i2.id, ' ', i2.longName) SEPARATOR ', ')), 250) itemDelay, - LEFT(CONCAT('I: ',GROUP_CONCAT(CONCAT(i3.id, ' ', i3.longName) SEPARATOR ', ')), 250) itemLost, - LEFT(CONCAT('C: ',GROUP_CONCAT(CONCAT(i4.id, ' ', i4.longName) SEPARATOR ', ')), 250) componentLack, - LEFT(CONCAT('RE: ',GROUP_CONCAT(CONCAT(i5.id, ' ', i5.longName) SEPARATOR ', ')), 250) rounding + SUM(IFNULL(ts.hasRounding,0)) hasRounding FROM tmp.ticket tt JOIN ticket t ON t.id = tt.ticketFk JOIN client c ON c.id = t.clientFk LEFT JOIN sale s ON s.ticketFk = t.id LEFT JOIN tmp.saleProblems ts ON ts.saleFk = s.id - LEFT JOIN item i ON i.id = s.itemFk AND ts.hasItemShortage - LEFT JOIN item i2 ON i2.id = s.itemFk AND ts.hasItemDelay - LEFT JOIN item i3 ON i3.id = s.itemFk AND ts.hasItemLost - LEFT JOIN item i4 ON i4.id = s.itemFk AND FIND_IN_SET('hasComponentLack', s.problem) - LEFT JOIN item i5 ON i5.id = s.itemFk AND ts.hasRounding LEFT JOIN zoneClosure zc ON zc.zoneFk = t.zoneFk AND zc.dated = util.VN_CURDATE() - WHERE s.problem <> '' OR t.problem <> '' OR t.risk GROUP BY t.id; - - DROP TEMPORARY TABLE tItemShelving; END$$ DELIMITER ; From 69cafd5a0457f7a6e5b50aa3b57e45132b49fa2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Andr=C3=A9s?= Date: Mon, 30 Sep 2024 14:30:15 +0200 Subject: [PATCH 015/149] fix: refs #7965 UnifyProblems --- modules/monitor/back/methods/sales-monitor/salesFilter.js | 4 ++-- modules/ticket/back/methods/ticket/filter.js | 2 +- modules/ticket/back/methods/ticket/getTicketsFuture.js | 5 +---- 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/modules/monitor/back/methods/sales-monitor/salesFilter.js b/modules/monitor/back/methods/sales-monitor/salesFilter.js index 70c750ef57..4f81f59b9e 100644 --- a/modules/monitor/back/methods/sales-monitor/salesFilter.js +++ b/modules/monitor/back/methods/sales-monitor/salesFilter.js @@ -289,7 +289,7 @@ module.exports = Self => { {'tp.hasTicketRequest': true}, {'tp.hasComponentLack': true}, {'tp.isTaxDataChecked': false}, - {'tp.itemShortage': {neq: null}}, + {'tp.hasItemShortage': true}, {'tp.isTooLittle': true} ]}; } else if (hasProblems === false) { @@ -299,7 +299,7 @@ module.exports = Self => { {'tp.hasTicketRequest': false}, {'tp.hasComponentLack': false}, {'tp.isTaxDataChecked': true}, - {'tp.itemShortage': null}, + {'tp.hasItemShortage': false}, {'tp.isTooLittle': false} ]}; } diff --git a/modules/ticket/back/methods/ticket/filter.js b/modules/ticket/back/methods/ticket/filter.js index 9ac239be77..77da770a24 100644 --- a/modules/ticket/back/methods/ticket/filter.js +++ b/modules/ticket/back/methods/ticket/filter.js @@ -345,7 +345,7 @@ module.exports = Self => { {'tp.isFreezed': hasProblem}, {'tp.hasRisk': hasProblem}, {'tp.hasTicketRequest': hasProblem}, - {'tp.itemShortage': range}, + {'tp.hasItemShortage': range}, {'tp.hasRounding': hasProblem} ]}; diff --git a/modules/ticket/back/methods/ticket/getTicketsFuture.js b/modules/ticket/back/methods/ticket/getTicketsFuture.js index 1c31da057c..af3acff13e 100644 --- a/modules/ticket/back/methods/ticket/getTicketsFuture.js +++ b/modules/ticket/back/methods/ticket/getTicketsFuture.js @@ -175,20 +175,17 @@ module.exports = Self => { let condition; let hasProblem; - let range; let hasWhere; switch (args.problems) { case true: condition = `or`; hasProblem = true; - range = {neq: null}; hasWhere = true; break; case false: condition = `and`; hasProblem = null; - range = null; hasWhere = true; break; } @@ -198,7 +195,7 @@ module.exports = Self => { {'tp.isFreezed': hasProblem}, {'tp.hasRisk': hasProblem}, {'tp.hasTicketRequest': hasProblem}, - {'tp.itemShortage': range}, + {'tp.hasItemShortage': hasProblem}, {'tp.hasComponentLack': hasProblem}, {'tp.isTooLittle': hasProblem}, {'tp.hasRounding': hasProblem} From bb1695eac69b8449280bdc30a7108c2174c6dfd8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Andr=C3=A9s?= Date: Mon, 30 Sep 2024 16:39:55 +0200 Subject: [PATCH 016/149] fix: refs #7965 UnifyProblems --- .../vn/procedures/ticket_getProblems.sql | 18 +++++++++++++++++- modules/ticket/back/methods/ticket/filter.js | 5 +---- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/db/routines/vn/procedures/ticket_getProblems.sql b/db/routines/vn/procedures/ticket_getProblems.sql index c5a1532ff7..e58d49a5a3 100644 --- a/db/routines/vn/procedures/ticket_getProblems.sql +++ b/db/routines/vn/procedures/ticket_getProblems.sql @@ -55,7 +55,8 @@ BEGIN SUM(IFNULL(ts.hasItemDelay,0)) hasItemDelay, SUM(IFNULL(ts.hasItemLost,0)) hasItemLost, IF(FIND_IN_SET('hasComponentLack', s.problem), TRUE, FALSE) hasComponentLack, - SUM(IFNULL(ts.hasRounding,0)) hasRounding + SUM(IFNULL(ts.hasRounding,0)) hasRounding, + 0 totalProblems FROM tmp.ticket tt JOIN ticket t ON t.id = tt.ticketFk JOIN client c ON c.id = t.clientFk @@ -64,5 +65,20 @@ BEGIN LEFT JOIN zoneClosure zc ON zc.zoneFk = t.zoneFk AND zc.dated = util.VN_CURDATE() GROUP BY t.id; + + UPDATE tmp.ticketProblems + SET totalProblems = ( + (isFreezed) + + (hasHighRisk) + + (hasTicketRequest) + + (!isTaxDataChecked) + + (hasComponentLack) + + (hasItemDelay IS NOT NULL) + + (isTooLittle) + + (hasItemLost IS NOT NULL) + + (hasRounding IS NOT NULL) + + (hasItemShortage IS NOT NULL) + + (isVip) + ); END$$ DELIMITER ; diff --git a/modules/ticket/back/methods/ticket/filter.js b/modules/ticket/back/methods/ticket/filter.js index eccec735ff..2571213070 100644 --- a/modules/ticket/back/methods/ticket/filter.js +++ b/modules/ticket/back/methods/ticket/filter.js @@ -325,20 +325,17 @@ module.exports = Self => { let condition; let hasProblem; - let range; let hasWhere; switch (args.problems) { case true: condition = `or`; hasProblem = true; - range = {neq: null}; hasWhere = true; break; case false: condition = `and`; hasProblem = null; - range = null; hasWhere = true; break; } @@ -347,7 +344,7 @@ module.exports = Self => { {'tp.isFreezed': hasProblem}, {'tp.hasRisk': hasProblem}, {'tp.hasTicketRequest': hasProblem}, - {'tp.hasItemShortage': range}, + {'tp.hasItemShortage': hasProblem}, {'tp.hasRounding': hasProblem} ]}; From 6a5cf1a57ff787e94032391c315b44f88c5aaa9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Andr=C3=A9s?= Date: Tue, 1 Oct 2024 15:46:51 +0200 Subject: [PATCH 017/149] fix: refs #7965 UnifyProblems --- db/dump/fixtures.before.sql | 34 +++--- .../vn/procedures/ticket_getProblems.sql | 101 +++++++++++------- .../sales-monitor/specs/salesFilter.spec.js | 2 +- .../back/methods/ticket/specs/filter.spec.js | 6 +- 4 files changed, 84 insertions(+), 59 deletions(-) diff --git a/db/dump/fixtures.before.sql b/db/dump/fixtures.before.sql index ffbc6a864d..e8b89afa93 100644 --- a/db/dump/fixtures.before.sql +++ b/db/dump/fixtures.before.sql @@ -1072,12 +1072,12 @@ INSERT INTO `vn`.`sale`(`id`, `itemFk`, `ticketFk`, `concept`, `quantity`, `pric (5, 1, 2, 'Ranged weapon longbow 200cm', 1, 110.33, 0, 0, 0, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 'hasComponentLack'), (6, 1, 3, 'Ranged weapon longbow 200cm', 1, 110.33, 0, 0, 0, DATE_ADD(util.VN_CURDATE(), INTERVAL -2 MONTH), 'hasComponentLack'), (7, 2, 11, 'Melee weapon combat fist 15cm', 15, 7.74, 0, 0, 0, util.VN_CURDATE(), NULL), - (8, 4, 11, 'Melee weapon heavy shield 100cm', 10, 1.79, 0, 0, 0, util.VN_CURDATE(), NULL), + (8, 4, 11, 'Melee weapon heavy shield 100cm', 10, 1.79, 0, 0, 0, util.VN_CURDATE(), 'hasItemLost,hasRounding'), (9, 1, 16, 'Ranged weapon longbow 200cm', 1, 103.49, 0, 0, 0, util.VN_CURDATE(), NULL), (10, 2, 16, 'Melee weapon combat fist 15cm', 10, 7.09, 0, 0, 0, util.VN_CURDATE(), NULL), (11, 1, 16, 'Ranged weapon longbow 200cm', 1, 103.49, 0, 0, 0, util.VN_CURDATE(), NULL), - (12, 4, 16, 'Melee weapon heavy shield 100cm', 20, 1.71, 0, 0, 0, util.VN_CURDATE(), NULL), - (13, 2, 8, 'Melee weapon combat fist 15cm', 10, 7.08, 0, 0, 0, util.VN_CURDATE(), NULL), + (12, 4, 16, 'Melee weapon heavy shield 100cm', 20, 1.71, 0, 0, 0, util.VN_CURDATE(), 'hasItemLost'), + (13, 2, 8, 'Melee weapon combat fist 15cm', 10, 7.08, 0, 0, 0, util.VN_CURDATE(), 'hasItemLost'), (14, 1, 8, 'Ranged weapon longbow 200cm', 2, 103.49, 0, 0, 0, util.VN_CURDATE(), NULL), (15, 1, 19, 'Ranged weapon longbow 200cm', 1, 103.49, 0, 0, 0, util.VN_CURDATE(), NULL), (16, 2, 20, 'Melee weapon combat fist 15cm', 20, 7.07, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack'), @@ -1088,25 +1088,25 @@ INSERT INTO `vn`.`sale`(`id`, `itemFk`, `ticketFk`, `concept`, `quantity`, `pric (21, 1, 6, 'Ranged weapon longbow 200cm', 1, 8.07, 0, 0, 0, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 'hasComponentLack'), (22, 1, 7, 'Ranged weapon longbow 200cm', 1, 8.07, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack'), (23, 1, 9, 'Ranged weapon longbow 200cm', 1, 8.07, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack'), - (24, 1, 10, 'Ranged weapon longbow 200cm', 1, 8.07, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack'), - (25, 4, 12, 'Melee weapon heavy shield 100cm', 20, 1.72, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack'), - (26, 4, 13, 'Melee weapon heavy shield 100cm', 20, 1.72, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack'), - (27, 4, 14, 'Melee weapon heavy shield 100cm', 20, 1.72, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack'), - (28, 4, 15, 'Melee weapon heavy shield 100cm', 20, 1.72, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack'), - (29, 4, 17, 'Melee weapon heavy shield 100cm', 20, 1.72, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack'), - (30, 4, 18, 'Melee weapon heavy shield 100cm', 20, 1.72, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack'), - (31, 2, 23, 'Melee weapon combat fist 15cm', -5, 7.08, 0, 0, 0, util.VN_CURDATE(), NULL), + (24, 1, 10, 'Ranged weapon longbow 200cm', 1, 8.07, 0, 0, 0, util.VN_CURDATE(), 'hasItemShortage,hasComponentLack'), + (25, 4, 12, 'Melee weapon heavy shield 100cm', 20, 1.72, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack,hasItemLost'), + (26, 4, 13, 'Melee weapon heavy shield 100cm', 20, 1.72, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack,hasItemLost'), + (27, 4, 14, 'Melee weapon heavy shield 100cm', 20, 1.72, 0, 0, 0, util.VN_CURDATE(), 'hasItemShortage,hasComponentLack,hasItemLost'), + (28, 4, 15, 'Melee weapon heavy shield 100cm', 20, 1.72, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack,hasItemLost'), + (29, 4, 17, 'Melee weapon heavy shield 100cm', 20, 1.72, 0, 0, 0, util.VN_CURDATE(), 'hasItemShortage,hasComponentLack'), + (30, 4, 18, 'Melee weapon heavy shield 100cm', 20, 1.72, 0, 0, 0, util.VN_CURDATE(), 'hasItemShortage,hasComponentLack'), + (31, 2, 23, 'Melee weapon combat fist 15cm', -5, 7.08, 0, 0, 0, util.VN_CURDATE(), 'hasRounding'), (32, 1, 24, 'Ranged weapon longbow 200cm', -1, 8.07, 0, 0, 0, util.VN_CURDATE(), NULL), (33, 5, 14, 'Ranged weapon pistol 9mm', 50, 1.79, 0, 0, 0, util.VN_CURDATE(), NULL), - (34, 4, 28, 'Melee weapon heavy shield 100cm', 20, 1.72, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack'), - (35, 4, 29, 'Melee weapon heavy shield 100cm', 20, 1.72, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack'), + (34, 4, 28, 'Melee weapon heavy shield 100cm', 20, 1.72, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack,hasItemLost'), + (35, 4, 29, 'Melee weapon heavy shield 100cm', 20, 1.72, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack,hasItemLost'), (37, 4, 31, 'Melee weapon heavy shield 100cm', 20, 1.72, 0, 0, 0, util.VN_CURDATE(), NULL), - (36, 4, 30, 'Melee weapon heavy shield 100cm', 20, 1.72, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack'), + (36, 4, 30, 'Melee weapon heavy shield 100cm', 20, 1.72, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack,hasItemLost'), (38, 2, 32, 'Melee weapon combat fist 15cm', 30, 7.07, 0, 0, 0, DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH), 'hasComponentLack'), (39, 1, 32, 'Ranged weapon longbow 200cm', 2, 103.49, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack'), - (40, 2, 34, 'Melee weapon combat fist 15cm', 10.00, 3.91, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack'), - (41, 2, 35, 'Melee weapon combat fist 15cm', 8.00, 3.01, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack'), - (42, 2, 36, 'Melee weapon combat fist 15cm', 6.00, 2.50, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack'); + (40, 2, 34, 'Melee weapon combat fist 15cm', 10.00, 3.91, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack,hasItemLost'), + (41, 2, 35, 'Melee weapon combat fist 15cm', 8.00, 3.01, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack,hasRounding,hasItemLost'), + (42, 2, 36, 'Melee weapon combat fist 15cm', 6.00, 2.50, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack,hasRounding,hasItemLost'); INSERT INTO `vn`.`saleComponent`(`saleFk`, `componentFk`, `value`) VALUES diff --git a/db/routines/vn/procedures/ticket_getProblems.sql b/db/routines/vn/procedures/ticket_getProblems.sql index e58d49a5a3..3855c3a1df 100644 --- a/db/routines/vn/procedures/ticket_getProblems.sql +++ b/db/routines/vn/procedures/ticket_getProblems.sql @@ -40,45 +40,70 @@ BEGIN hasRounding BOOL DEFAULT FALSE, PRIMARY KEY (ticketFk) ) ENGINE = MEMORY - SELECT tt.ticketFk, - IF(FIND_IN_SET('isFreezed', t.problem), TRUE, FALSE) isFreezed, - t.risk, - IF(FIND_IN_SET('hasRisk', t.problem), TRUE, FALSE) hasRisk, - IF(FIND_IN_SET('hasHighRisk', t.problem), TRUE, FALSE) hasHighRisk, - IF(FIND_IN_SET('hasTicketRequest', t.problem), TRUE, FALSE) hasTicketRequest, - IF(FIND_IN_SET('isTaxDataChecked', t.problem), FALSE, TRUE) isTaxDataChecked, - IF(FIND_IN_SET('isTooLittle', t.problem) - AND util.VN_NOW() < (util.VN_CURDATE() + INTERVAL HOUR(zc.`hour`) HOUR) + INTERVAL MINUTE(zc.`hour`) MINUTE, - TRUE, FALSE) isTooLittle, - IF(c.businessTypeFk = 'VIP', TRUE, FALSE) isVip, - SUM(IFNULL(ts.hasItemShortage,0)) hasItemShortage, - SUM(IFNULL(ts.hasItemDelay,0)) hasItemDelay, - SUM(IFNULL(ts.hasItemLost,0)) hasItemLost, - IF(FIND_IN_SET('hasComponentLack', s.problem), TRUE, FALSE) hasComponentLack, - SUM(IFNULL(ts.hasRounding,0)) hasRounding, - 0 totalProblems - FROM tmp.ticket tt - JOIN ticket t ON t.id = tt.ticketFk - JOIN client c ON c.id = t.clientFk - LEFT JOIN sale s ON s.ticketFk = t.id - LEFT JOIN tmp.saleProblems ts ON ts.saleFk = s.id - LEFT JOIN zoneClosure zc ON zc.zoneFk = t.zoneFk - AND zc.dated = util.VN_CURDATE() - GROUP BY t.id; + WITH hasItemShortage AS( + SELECT s.ticketFk + FROM tmp.saleProblems sp + JOIN vn.sale s ON s.id = sp.saleFk + WHERE sp.hasItemShortage + GROUP BY s.ticketFk + ),hasItemLost AS( + SELECT s.ticketFk + FROM tmp.saleProblems sp + JOIN vn.sale s ON s.id = sp.saleFk + WHERE sp.hasItemLost + GROUP BY s.ticketFk + ),hasRounding AS( + SELECT s.ticketFk + FROM tmp.saleProblems sp + JOIN vn.sale s ON s.id = sp.saleFk + WHERE sp.hasRounding + GROUP BY s.ticketFk + ), hasItemDelay AS( + SELECT s.ticketFk + FROM tmp.saleProblems sp + JOIN vn.sale s ON s.id = sp.saleFk + WHERE sp.hasItemDelay + GROUP BY s.ticketFk + ), hasComponentLack AS( + SELECT s.ticketFk + FROM tmp.saleProblems sp + JOIN vn.sale s ON s.id = sp.saleFk + WHERE FIND_IN_SET('hasComponentLack', s.problem) + GROUP BY s.ticketFk + )SELECT tt.ticketFk, + IF(FIND_IN_SET('isFreezed', t.problem), TRUE, FALSE) isFreezed, + t.risk, + IF(FIND_IN_SET('hasRisk', t.problem), TRUE, FALSE) hasRisk, + IF(FIND_IN_SET('hasHighRisk', t.problem), TRUE, FALSE) hasHighRisk, + IF(FIND_IN_SET('hasTicketRequest', t.problem), TRUE, FALSE) hasTicketRequest, + IF(FIND_IN_SET('isTaxDataChecked', t.problem), TRUE, FALSE) isTaxDataChecked, + IF(FIND_IN_SET('isTooLittle', t.problem) + AND util.VN_NOW() < (util.VN_CURDATE() + + INTERVAL HOUR(zc.`hour`) HOUR) + + INTERVAL MINUTE(zc.`hour`) MINUTE, + TRUE, FALSE) isTooLittle, + IF(c.businessTypeFk = 'VIP', TRUE, FALSE) isVip, + IF(his.ticketFk IS NULL, FALSE, TRUE) hasItemShortage, + IF(hid.ticketFk IS NULL, FALSE, TRUE) hasItemDelay, + IF(hil.ticketFk IS NULL, FALSE, TRUE) hasItemLost, + IF(hcl.ticketFk IS NULL, FALSE, TRUE) hasComponentLack, + IF(hr.ticketFk IS NULL, FALSE, TRUE) hasRounding, + 0 totalProblems + FROM tmp.ticket tt + JOIN vn.ticket t ON t.id = tt.ticketFk + JOIN vn.client c ON c.id = t.clientFk + LEFT JOIN hasItemShortage his ON his.ticketFk = t.id + LEFT JOIN hasItemLost hil ON hil.ticketFk = t.id + LEFT JOIN hasRounding hr ON hr.ticketFk = t.id + LEFT JOIN hasItemDelay hid ON hid.ticketFk = t.id + LEFT JOIN hasComponentLack hcl ON hcl.ticketFk = t.id + LEFT JOIN vn.zoneClosure zc ON zc.zoneFk = t.zoneFk + AND zc.dated = util.VN_CURDATE() + GROUP BY t.id; UPDATE tmp.ticketProblems - SET totalProblems = ( - (isFreezed) + - (hasHighRisk) + - (hasTicketRequest) + - (!isTaxDataChecked) + - (hasComponentLack) + - (hasItemDelay IS NOT NULL) + - (isTooLittle) + - (hasItemLost IS NOT NULL) + - (hasRounding IS NOT NULL) + - (hasItemShortage IS NOT NULL) + - (isVip) - ); + SET totalProblems = isFreezed + hasHighRisk + hasTicketRequest + + isTaxDataChecked + hasComponentLack + hasItemDelay + + isTooLittle + hasItemLost + hasRounding + hasItemShortage + isVip; END$$ DELIMITER ; diff --git a/modules/monitor/back/methods/sales-monitor/specs/salesFilter.spec.js b/modules/monitor/back/methods/sales-monitor/specs/salesFilter.spec.js index 738af52199..908c446a68 100644 --- a/modules/monitor/back/methods/sales-monitor/specs/salesFilter.spec.js +++ b/modules/monitor/back/methods/sales-monitor/specs/salesFilter.spec.js @@ -48,7 +48,7 @@ describe('SalesMonitor salesFilter()', () => { } }); - it('should now return the tickets matching the problems on false', async() => { + fit('should now return the tickets matching the problems on false', async() => { const tx = await models.SalesMonitor.beginTransaction({}); try { diff --git a/modules/ticket/back/methods/ticket/specs/filter.spec.js b/modules/ticket/back/methods/ticket/specs/filter.spec.js index d0edb24e39..44bfbb7e3f 100644 --- a/modules/ticket/back/methods/ticket/specs/filter.spec.js +++ b/modules/ticket/back/methods/ticket/specs/filter.spec.js @@ -45,8 +45,8 @@ describe('ticket filter()', () => { ticket.isFreezed === true || ticket.hasRisk === true || ticket.hasTicketRequest === true || - (typeof ticket.hasRounding === 'string' && ticket.hasRounding.trim().length > 0) || - (typeof ticket.itemShortage === 'string' && ticket.itemShortage.trim().length > 0) + ticket.hasRounding === true || + ticket.hasItemShortage === true ); expect(hasProblemTicket).toBe(true); @@ -83,7 +83,7 @@ describe('ticket filter()', () => { expect(ticket.isFreezed).toEqual(null); expect(ticket.hasRisk).toEqual(null); expect(ticket.hasTicketRequest).toEqual(null); - expect(ticket.itemShortage).toEqual(null); + expect(ticket.hasItemShortage).toEqual(null); expect(ticket.hasRounding).toEqual(null); }); From 99c70a533a3fed301ce3427d4b7e61558e0ee2fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Andr=C3=A9s?= Date: Wed, 2 Oct 2024 14:25:27 +0200 Subject: [PATCH 018/149] fix: test --- db/dump/fixtures.before.sql | 2 +- .../monitor/back/methods/sales-monitor/salesFilter.js | 4 ++-- .../methods/sales-monitor/specs/salesFilter.spec.js | 4 ++-- .../ticket/back/methods/ticket/specs/filter.spec.js | 10 +++++----- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/db/dump/fixtures.before.sql b/db/dump/fixtures.before.sql index 63d395e861..550a790158 100644 --- a/db/dump/fixtures.before.sql +++ b/db/dump/fixtures.before.sql @@ -1076,7 +1076,7 @@ INSERT INTO `vn`.`sale`(`id`, `itemFk`, `ticketFk`, `concept`, `quantity`, `pric (9, 1, 16, 'Ranged weapon longbow 200cm', 1, 103.49, 0, 0, 0, util.VN_CURDATE(), NULL), (10, 2, 16, 'Melee weapon combat fist 15cm', 10, 7.09, 0, 0, 0, util.VN_CURDATE(), NULL), (11, 1, 16, 'Ranged weapon longbow 200cm', 1, 103.49, 0, 0, 0, util.VN_CURDATE(), NULL), - (12, 4, 16, 'Melee weapon heavy shield 100cm', 20, 1.71, 0, 0, 0, util.VN_CURDATE(), 'hasItemLost'), + (12, 4, 16, 'Melee weapon heavy shield 100cm', 20, 1.71, 0, 0, 0, util.VN_CURDATE(), NULL), (13, 2, 8, 'Melee weapon combat fist 15cm', 10, 7.08, 0, 0, 0, util.VN_CURDATE(), 'hasItemLost'), (14, 1, 8, 'Ranged weapon longbow 200cm', 2, 103.49, 0, 0, 0, util.VN_CURDATE(), NULL), (15, 1, 19, 'Ranged weapon longbow 200cm', 1, 103.49, 0, 0, 0, util.VN_CURDATE(), NULL), diff --git a/modules/monitor/back/methods/sales-monitor/salesFilter.js b/modules/monitor/back/methods/sales-monitor/salesFilter.js index 4f81f59b9e..36e2c40aa5 100644 --- a/modules/monitor/back/methods/sales-monitor/salesFilter.js +++ b/modules/monitor/back/methods/sales-monitor/salesFilter.js @@ -288,7 +288,7 @@ module.exports = Self => { {'tp.hasRisk': true}, {'tp.hasTicketRequest': true}, {'tp.hasComponentLack': true}, - {'tp.isTaxDataChecked': false}, + {'tp.isTaxDataChecked': true}, {'tp.hasItemShortage': true}, {'tp.isTooLittle': true} ]}; @@ -298,7 +298,7 @@ module.exports = Self => { {'tp.hasRisk': false}, {'tp.hasTicketRequest': false}, {'tp.hasComponentLack': false}, - {'tp.isTaxDataChecked': true}, + {'tp.isTaxDataChecked': false}, {'tp.hasItemShortage': false}, {'tp.isTooLittle': false} ]}; diff --git a/modules/monitor/back/methods/sales-monitor/specs/salesFilter.spec.js b/modules/monitor/back/methods/sales-monitor/specs/salesFilter.spec.js index 908c446a68..1b4616de73 100644 --- a/modules/monitor/back/methods/sales-monitor/specs/salesFilter.spec.js +++ b/modules/monitor/back/methods/sales-monitor/specs/salesFilter.spec.js @@ -48,7 +48,7 @@ describe('SalesMonitor salesFilter()', () => { } }); - fit('should now return the tickets matching the problems on false', async() => { + it('should now return the tickets matching the problems on false', async() => { const tx = await models.SalesMonitor.beginTransaction({}); try { @@ -68,7 +68,7 @@ describe('SalesMonitor salesFilter()', () => { const filter = {}; const result = await models.SalesMonitor.salesFilter(ctx, filter, options); - expect(result.length).toEqual(4); + expect(result.length).toEqual(5); await tx.rollback(); } catch (e) { diff --git a/modules/ticket/back/methods/ticket/specs/filter.spec.js b/modules/ticket/back/methods/ticket/specs/filter.spec.js index 44bfbb7e3f..d06d02f23a 100644 --- a/modules/ticket/back/methods/ticket/specs/filter.spec.js +++ b/modules/ticket/back/methods/ticket/specs/filter.spec.js @@ -42,11 +42,11 @@ describe('ticket filter()', () => { const result = await models.Ticket.filter(ctx, filter, options); const hasProblemTicket = result.some(ticket => - ticket.isFreezed === true || - ticket.hasRisk === true || - ticket.hasTicketRequest === true || - ticket.hasRounding === true || - ticket.hasItemShortage === true + ticket.isFreezed == true || + ticket.hasRisk == true || + ticket.hasTicketRequest == true || + ticket.hasRounding == true || + ticket.hasItemShortage == true ); expect(hasProblemTicket).toBe(true); From 4e0a81464c6e0dc410d8c87091bbfe2f9aa06df8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Andr=C3=A9s?= Date: Wed, 2 Oct 2024 15:12:57 +0200 Subject: [PATCH 019/149] fix: test --- db/routines/vn/procedures/productionControl.sql | 1 + db/routines/vn/procedures/sale_getProblems.sql | 2 +- db/routines/vn/procedures/sale_getProblemsByTicket.sql | 4 +++- db/routines/vn/procedures/ticket_getProblems.sql | 2 ++ modules/monitor/back/methods/sales-monitor/salesFilter.js | 1 + modules/ticket/back/methods/ticket/filter.js | 1 + modules/ticket/back/methods/ticket/getTicketsFuture.js | 1 + 7 files changed, 10 insertions(+), 2 deletions(-) diff --git a/db/routines/vn/procedures/productionControl.sql b/db/routines/vn/procedures/productionControl.sql index 29abc8044e..b9550d62c8 100644 --- a/db/routines/vn/procedures/productionControl.sql +++ b/db/routines/vn/procedures/productionControl.sql @@ -283,6 +283,7 @@ proc: BEGIN DROP TEMPORARY TABLE tmp.productionTicket, + tmp.ticket, tmp.ticketProblems, tmp.saleProblems, tmp.ticketWithPrevia, diff --git a/db/routines/vn/procedures/sale_getProblems.sql b/db/routines/vn/procedures/sale_getProblems.sql index a8388034f9..79b548c2c6 100644 --- a/db/routines/vn/procedures/sale_getProblems.sql +++ b/db/routines/vn/procedures/sale_getProblems.sql @@ -163,6 +163,6 @@ BEGIN END LOOP; CLOSE vCursor; - DROP TEMPORARY TABLE tItemShelving, tmp.sale; + DROP TEMPORARY TABLE tItemShelving; END$$ DELIMITER ; diff --git a/db/routines/vn/procedures/sale_getProblemsByTicket.sql b/db/routines/vn/procedures/sale_getProblemsByTicket.sql index 708938cba0..fdfd5c8bc8 100644 --- a/db/routines/vn/procedures/sale_getProblemsByTicket.sql +++ b/db/routines/vn/procedures/sale_getProblemsByTicket.sql @@ -18,6 +18,8 @@ BEGIN SELECT * FROM tmp.saleProblems; - DROP TEMPORARY TABLE tmp.saleProblems; + DROP TEMPORARY TABLE + tmp.saleProblems, + tmp.sale; END$$ DELIMITER ; diff --git a/db/routines/vn/procedures/ticket_getProblems.sql b/db/routines/vn/procedures/ticket_getProblems.sql index 3855c3a1df..fe77ed57bd 100644 --- a/db/routines/vn/procedures/ticket_getProblems.sql +++ b/db/routines/vn/procedures/ticket_getProblems.sql @@ -105,5 +105,7 @@ BEGIN SET totalProblems = isFreezed + hasHighRisk + hasTicketRequest + isTaxDataChecked + hasComponentLack + hasItemDelay + isTooLittle + hasItemLost + hasRounding + hasItemShortage + isVip; + + DROP TEMPORARY TABLE tmp.sale; END$$ DELIMITER ; diff --git a/modules/monitor/back/methods/sales-monitor/salesFilter.js b/modules/monitor/back/methods/sales-monitor/salesFilter.js index 36e2c40aa5..27a3083117 100644 --- a/modules/monitor/back/methods/sales-monitor/salesFilter.js +++ b/modules/monitor/back/methods/sales-monitor/salesFilter.js @@ -375,6 +375,7 @@ module.exports = Self => { stmts.push(` DROP TEMPORARY TABLE + tmp.ticket, tmp.filter, tmp.ticketProblems, tmp.sale_getWarnings, diff --git a/modules/ticket/back/methods/ticket/filter.js b/modules/ticket/back/methods/ticket/filter.js index 2571213070..3ca52337d0 100644 --- a/modules/ticket/back/methods/ticket/filter.js +++ b/modules/ticket/back/methods/ticket/filter.js @@ -369,6 +369,7 @@ module.exports = Self => { stmts.push( `DROP TEMPORARY TABLE + tmp.ticket, tmp.filter, tmp.ticketProblems`); diff --git a/modules/ticket/back/methods/ticket/getTicketsFuture.js b/modules/ticket/back/methods/ticket/getTicketsFuture.js index af3acff13e..88f40bc3ef 100644 --- a/modules/ticket/back/methods/ticket/getTicketsFuture.js +++ b/modules/ticket/back/methods/ticket/getTicketsFuture.js @@ -213,6 +213,7 @@ module.exports = Self => { stmts.push( `DROP TEMPORARY TABLE + tmp.ticket, tmp.filter, tmp.ticketProblems`); From 62243e164a3d44f2ad4cd02f85a82baebad076eb Mon Sep 17 00:00:00 2001 From: Javier Segarra Date: Mon, 11 Nov 2024 14:47:21 +0100 Subject: [PATCH 020/149] feat: refs #7134 refs #6427 #7134 add new supplier/receipts method --- .../back/methods/supplier/createReceipt.js | 173 ++++++++++++++++++ .../back/methods/supplier/receipts.js | 73 ++++++++ modules/supplier/back/models/supplier.js | 2 + 3 files changed, 248 insertions(+) create mode 100644 modules/supplier/back/methods/supplier/createReceipt.js create mode 100644 modules/supplier/back/methods/supplier/receipts.js diff --git a/modules/supplier/back/methods/supplier/createReceipt.js b/modules/supplier/back/methods/supplier/createReceipt.js new file mode 100644 index 0000000000..c051a67510 --- /dev/null +++ b/modules/supplier/back/methods/supplier/createReceipt.js @@ -0,0 +1,173 @@ +const UserError = require('vn-loopback/util/user-error'); +// Insert payment + +// divisa = solo en caso que la moneda sea distinta a €, +module.exports = function(Self) { + Self.remoteMethodCtx('createReceipt', { + description: 'Creates receipt and its compensation if necessary', + accessType: 'READ', + accepts: [{ + arg: 'supplierFk', + type: 'number', + description: 'The supplier id', + http: {source: 'path'} + }, + { + arg: 'received', + type: 'Date', + required: true + }, + { + arg: 'dueDate', + type: 'Date', + required: true + }, + { + arg: 'companyFk', + type: 'number', + required: true + }, + { + arg: 'currencyFk', + type: 'number', + required: true + }, + { + arg: 'bankFk', + type: 'number', + required: true + }, + { + arg: 'payMethodFk', + type: 'number', + required: true + }, + { + arg: 'amount', + type: 'number', + required: true + }, + { + arg: 'concept', + type: 'string', + required: true + }, + { + arg: 'divisa', + type: 'number' + }, + { + arg: 'compensationAccount', + type: 'any' + }], + returns: { + root: true, + type: 'Object' + }, + http: { + verb: 'post', + path: '/:supplierFk/createReceipt' + }, + accessScopes: ['DEFAULT', 'read:multimedia'] + }); + + Self.createReceipt = async(ctx, options) => { + const models = Self.app.models; + const args = ctx.args; + const date = Date.vnNew(); + date.setHours(0, 0, 0, 0); + + let tx; + const myOptions = {userId: ctx.req.accessToken.userId}; + + if (typeof options == 'object') + Object.assign(myOptions, options); + + if (!myOptions.transaction) { + tx = await Self.beginTransaction({}); + myOptions.transaction = tx; + } + + try { + delete args.ctx; // Remove unwanted properties + + const originalSupplier = await models.Supplier.findById(args.supplierFk, null, myOptions); + const bank = await models.Accounting.findById(args.bankFk, null, myOptions); + const accountingType = await models.AccountingType.findById(bank.accountingTypeFk, null, myOptions); + + if (accountingType.code == 'compensation') { + if (!args.compensationAccount) + throw new UserError('Compensation account is empty'); + + // Check compensation account exists + await models.Supplier.getClientOrSupplierReference(args.compensationAccount, myOptions); + + await Self.rawSql( + `CALL vn.ledger_doCompensation(?, ?, ?, ?, ?, ?, ?)`, + [ + date, + args.compensationAccount, + args.bankFk, + accountingType.receiptDescription + originalSupplier.accountingAccount, + args.amountPaid, + args.companyFk, + originalSupplier.accountingAccount + ], + myOptions + ); + } else if (accountingType.isAutoConciliated == true) { + const description = + `${originalSupplier.id} : ${originalSupplier.socialName} - ${accountingType.receiptDescription}`; + const [, [xdiarioNew]] = await Self.rawSql( + `CALL xdiario_new(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, @xdiarioNew); + SELECT @xdiarioNew ledger;`, + [ + null, + date, + bank.account, + originalSupplier.accountingAccount, + description, + args.amountPaid, + 0, + 0, + '', + '', + null, + null, + false, + args.companyFk + ], + myOptions + ); + + await Self.rawSql( + `CALL xdiario_new(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, @xdiarioNew);`, + [ + xdiarioNew.ledger, + date, + originalSupplier.accountingAccount, + bank.account, + description, + 0, + args.amountPaid, + 0, + '', + '', + null, + null, + false, + args.companyFk + ], + myOptions + ); + } + const newReceipt = await models.Receipt.create(args, myOptions); + if (tx) await tx.commit(); + + return newReceipt; + } catch (e) { + if (tx) await tx.rollback(); + throw e; + } + }; +}; diff --git a/modules/supplier/back/methods/supplier/receipts.js b/modules/supplier/back/methods/supplier/receipts.js new file mode 100644 index 0000000000..dce9c31d4e --- /dev/null +++ b/modules/supplier/back/methods/supplier/receipts.js @@ -0,0 +1,73 @@ + +const ParameterizedSQL = require('loopback-connector').ParameterizedSQL; +module.exports = Self => { + Self.remoteMethodCtx('receipts', { + description: 'Find all clients matched by the filter', + accessType: 'READ', + accepts: [ + { + 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: 'orderBy', + type: 'string', + description: 'The client 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); + + let stmts = []; + stmts.push(new ParameterizedSQL('CALL vn.supplier_statementWithEntries(?,?,?,?,?,?)', [ + args.supplierId, + args.currencyFk ?? 1, + args.companyId, + args.orderBy ?? 'issued', + args.isConciliated ?? false, + false + ])); + stmts.push(` + SELECT * + FROM tmp.supplierStatement`); + stmts.push(`DROP TEMPORARY TABLE tmp.supplierStatement`); + const sql = ParameterizedSQL.join(stmts, ';'); + const results = await conn.executeStmt(sql); + const resultsIndex = stmts.length - 1; + const result = results[resultsIndex]; + return result; + }; +}; diff --git a/modules/supplier/back/models/supplier.js b/modules/supplier/back/models/supplier.js index 7e6908d57c..20313801e6 100644 --- a/modules/supplier/back/models/supplier.js +++ b/modules/supplier/back/models/supplier.js @@ -8,6 +8,8 @@ module.exports = Self => { require('../methods/supplier/updateFiscalData')(Self); require('../methods/supplier/consumption')(Self); require('../methods/supplier/freeAgencies')(Self); + require('../methods/supplier/createReceipt')(Self); + require('../methods/supplier/receipts')(Self); require('../methods/supplier/campaignMetricsPdf')(Self); require('../methods/supplier/campaignMetricsEmail')(Self); require('../methods/supplier/newSupplier')(Self); From 9113f2e3e568b2d4b5e9751535c659ace503d81b Mon Sep 17 00:00:00 2001 From: Jon Date: Wed, 13 Nov 2024 08:30:09 +0100 Subject: [PATCH 021/149] feat: refs #7127 modify days when adding lines to a claim --- db/dump/fixtures.before.sql | 4 ++-- .../11334-grayRoebelini/00-firstScript.sql | 2 ++ .../specs/claim-beginning.spec.js | 2 +- .../claim/specs/createFromSales.spec.js | 24 ++++++++----------- modules/claim/back/models/claim-beginning.js | 24 +++++++++++++++++++ .../methods/sale/getClaimableFromTicket.js | 8 +++---- 6 files changed, 42 insertions(+), 22 deletions(-) create mode 100644 db/versions/11334-grayRoebelini/00-firstScript.sql diff --git a/db/dump/fixtures.before.sql b/db/dump/fixtures.before.sql index 8544686e8b..4c13b37cc7 100644 --- a/db/dump/fixtures.before.sql +++ b/db/dump/fixtures.before.sql @@ -1931,9 +1931,9 @@ INSERT INTO `vn`.`claimEnd`(`id`, `saleFk`, `claimFk`, `workerFk`, `claimDestina (1, 31, 4, 21, 2), (2, 32, 3, 21, 3); -INSERT INTO `vn`.`claimConfig`(`id`, `maxResponsibility`, `monthsToRefund`, `minShipped`) +INSERT INTO `vn`.`claimConfig`(`id`, `maxResponsibility`, `monthsToRefund`, `minShipped`,`daysToClaim`) VALUES - (1, 5, 4, '2016-10-01'); + (1, 5, 4, '2016-10-01', 7); INSERT INTO `vn`.`claimRatio`(`clientFk`, `yearSale`, `claimAmount`, `claimingRate`, `priceIncreasing`, `packingRate`) VALUES diff --git a/db/versions/11334-grayRoebelini/00-firstScript.sql b/db/versions/11334-grayRoebelini/00-firstScript.sql new file mode 100644 index 0000000000..5eb1076947 --- /dev/null +++ b/db/versions/11334-grayRoebelini/00-firstScript.sql @@ -0,0 +1,2 @@ +-- Place your SQL code here +ALTER TABLE vn.claimConfig ADD IF NOT EXISTS daysToClaim int(11) NOT NULL DEFAULT 7 COMMENT 'Dias para reclamar'; diff --git a/modules/claim/back/methods/claim-beginning/specs/claim-beginning.spec.js b/modules/claim/back/methods/claim-beginning/specs/claim-beginning.spec.js index b7974ad237..8b56f3a1c3 100644 --- a/modules/claim/back/methods/claim-beginning/specs/claim-beginning.spec.js +++ b/modules/claim/back/methods/claim-beginning/specs/claim-beginning.spec.js @@ -4,7 +4,7 @@ const LoopBackContext = require('loopback-context'); describe('ClaimBeginning model()', () => { const claimFk = 1; const activeCtx = { - accessToken: {userId: 18}, + accessToken: {userId: 72}, headers: {origin: 'localhost:5000'}, __: () => {} }; diff --git a/modules/claim/back/methods/claim/specs/createFromSales.spec.js b/modules/claim/back/methods/claim/specs/createFromSales.spec.js index 25414d1db7..75caf278ef 100644 --- a/modules/claim/back/methods/claim/specs/createFromSales.spec.js +++ b/modules/claim/back/methods/claim/specs/createFromSales.spec.js @@ -3,22 +3,18 @@ const LoopBackContext = require('loopback-context'); describe('Claim createFromSales()', () => { const ticketId = 23; - const newSale = [{ - id: 31, - instance: 0, - quantity: 10 - }]; - const activeCtx = { - accessToken: {userId: 1}, - headers: {origin: 'localhost:5000'}, - __: () => {} - }; - - const ctx = { - req: activeCtx - }; + const newSale = [{id: 31, instance: 0, quantity: 10}]; + let activeCtx; + let ctx; beforeEach(() => { + activeCtx = { + accessToken: {userId: 72}, + headers: {origin: 'localhost:5000'}, + __: () => {} + }; + ctx = {req: activeCtx}; + spyOn(LoopBackContext, 'getCurrentContext').and.returnValue({ active: activeCtx }); diff --git a/modules/claim/back/models/claim-beginning.js b/modules/claim/back/models/claim-beginning.js index 3dc9261c3d..40d66c33ea 100644 --- a/modules/claim/back/models/claim-beginning.js +++ b/modules/claim/back/models/claim-beginning.js @@ -1,6 +1,7 @@ const UserError = require('vn-loopback/util/user-error'); const LoopBackContext = require('loopback-context'); +const moment = require('moment'); module.exports = Self => { require('../methods/claim-beginning/importToNewRefundTicket')(Self); @@ -13,8 +14,31 @@ module.exports = Self => { const options = ctx.options; const models = Self.app.models; const saleFk = ctx?.currentInstance?.saleFk || ctx?.instance?.saleFk; + const loopBackContext = LoopBackContext.getCurrentContext(); + const accessToken = loopBackContext.active.accessToken; + const user = await models.VnUser.findById(accessToken.userId); + const role = await models.VnRole.findById(user.roleFk); const sale = await models.Sale.findById(saleFk, {fields: ['ticketFk', 'quantity']}, options); + if (role.name !== 'salesPerson' && role.name !== 'claimManager') + throw new UserError(`You don't have permission to modify this claim`); + + if (role.name === 'salesPerson') { + const query = ` + SELECT daysToClaim + FROM vn.claimConfig`; + const res = await Self.rawSql(query); + const daysToClaim = res[0]?.daysToClaim; + + const claim = await models.Claim.findById(ctx?.currentInstance?.claimFk, {fields: ['created']}, options); + const claimDate = moment.utc(claim.created); + const currentDate = moment.utc(); + const daysSinceSale = currentDate.diff(claimDate, 'days'); + + if (daysSinceSale > daysToClaim) + throw new UserError(`You can't modify this claim because the deadline has already passed`); + } + if (ctx.isNewInstance) { const claim = await models.Claim.findById(ctx.instance.claimFk, {fields: ['ticketFk']}, options); if (sale.ticketFk != claim.ticketFk) diff --git a/modules/ticket/back/methods/sale/getClaimableFromTicket.js b/modules/ticket/back/methods/sale/getClaimableFromTicket.js index c51781f595..cb10bdb0e0 100644 --- a/modules/ticket/back/methods/sale/getClaimableFromTicket.js +++ b/modules/ticket/back/methods/sale/getClaimableFromTicket.js @@ -30,7 +30,6 @@ module.exports = Self => { SELECT s.id AS saleFk, t.id AS ticketFk, - t.landed, s.concept, s.itemFk, s.quantity, @@ -41,11 +40,10 @@ module.exports = Self => { INNER JOIN vn.sale s ON s.ticketFk = t.id LEFT JOIN vn.claimBeginning cb ON cb.saleFk = s.id - WHERE (t.landed) >= TIMESTAMPADD(DAY, -7, ?) - AND t.id = ? AND cb.id IS NULL - ORDER BY t.landed DESC, t.id DESC`; + WHERE t.id = ? + AND cb.id IS NULL`; - const claimableSales = await Self.rawSql(query, [date, ticketFk], myOptions); + const claimableSales = await Self.rawSql(query, [ticketFk], myOptions); return claimableSales; }; From 771e06743ebf4be3fe2fc9c02433105933b2fce9 Mon Sep 17 00:00:00 2001 From: Javier Segarra Date: Wed, 20 Nov 2024 14:06:52 +0100 Subject: [PATCH 022/149] feat: refs #7134 add supplier payment --- db/dump/fixtures.before.sql | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/db/dump/fixtures.before.sql b/db/dump/fixtures.before.sql index e093c05cb1..4ba377005a 100644 --- a/db/dump/fixtures.before.sql +++ b/db/dump/fixtures.before.sql @@ -4030,5 +4030,9 @@ INSERT IGNORE INTO vn.saySimpleCountry (countryFk, channel) VALUES (19, '1169'), (8, '1183'); -INSERT IGNORE INTO vn.saySimpleConfig (url, defaultChannel) - VALUES ('saysimle-url-mock', 1320); \ No newline at end of file +INSERT IGNORE INTO vn.saySimpleConfig (url, defaultChannel) + VALUES ('saysimle-url-mock', 1320); + + + INSERT INTO vn.payment (received,supplierFk,amount,currencyFk,divisa,bankFk,payMethodFk,bankingFees,concept,companyFk,created,isConciliated,dueDated,workerFk) VALUES + ('2024-09-15',1,1000.00,1,NULL,1,1,0.0,'n/pago',442,'2024-11-20 13:06:02.000',1,'2024-09-15',9); From f46a46359e94f95723285253358613bf37856439 Mon Sep 17 00:00:00 2001 From: Javier Segarra Date: Wed, 20 Nov 2024 14:07:00 +0100 Subject: [PATCH 023/149] feat: refs #7134 #7134 modify balanceStartingDate --- db/dump/fixtures.before.sql | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/db/dump/fixtures.before.sql b/db/dump/fixtures.before.sql index 4ba377005a..2dcedcc929 100644 --- a/db/dump/fixtures.before.sql +++ b/db/dump/fixtures.before.sql @@ -2629,9 +2629,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 @@ -4012,10 +4012,10 @@ INSERT INTO vn.routeAction (id, name, price, isMainlineDelivered) VALUES(1, 'Pin INSERT INTO vn.routeComplement (id, dated, workerFk, price, routeActionFk) VALUES(1, util.VN_CURDATE(), 9, 50.00, 1); -INSERT INTO srt.buffer (id, x, y, `size`, `length`, stateFk, typeFk, isActive, code, stratus, hasWorkerWaiting, reserve, routeFk, dayMinute, lastUnloaded, hasStrapper, typeDefaultFk, motors, editorFk) +INSERT INTO srt.buffer (id, x, y, `size`, `length`, stateFk, typeFk, isActive, code, stratus, hasWorkerWaiting, reserve, routeFk, dayMinute, lastUnloaded, hasStrapper, typeDefaultFk, motors, editorFk) VALUES (0, 0, 0, 0, NULL, 3, 1, 0, 'ENT', 0, 0, NULL, NULL, NULL, NULL, 0, 1, 1, NULL), (1, 0, 9900, 0, NULL, 1, 0, 0, 'NOK', 0, 0, NULL, NULL, NULL, NULL, 0, 1, 1, NULL), - (2, 0, 0, 450, 13000, 1, 0, 1, '01A', 1, 1, NULL, NULL, NULL, NULL, 0, 1, 1, NULL), + (2, 0, 0, 450, 13000, 1, 0, 1, '01A', 1, 1, NULL, NULL, NULL, NULL, 0, 1, 1, NULL), (3, 1400, 0, 450, 13000, 1, 0, 1, '01B', 1, 0, NULL, NULL, NULL, NULL, 0, 1, 1, NULL), (4, 0, 500, 500, 13000, 1, 4, 1, '02A', 2, 1, NULL, NULL, NULL, NULL, 1, 4, 13, NULL), (5, 1400, 500, 500, 13000, 1, 4, 1, '02B', 2, 1, NULL, NULL, NULL, NULL, 1, 4, 13, NULL), @@ -4026,7 +4026,7 @@ INSERT INTO srt.buffer (id, x, y, `size`, `length`, stateFk, typeFk, isActive, c (10, 0, 2000, 500, 13000, 1, 1, 1, '05A', 5, 0, NULL, NULL, NULL, NULL, 0, 1, 1, NULL); -INSERT IGNORE INTO vn.saySimpleCountry (countryFk, channel) +INSERT IGNORE INTO vn.saySimpleCountry (countryFk, channel) VALUES (19, '1169'), (8, '1183'); From aab595e9dd10f128e80bbc92c873524c31364d8a Mon Sep 17 00:00:00 2001 From: Javier Segarra Date: Wed, 20 Nov 2024 14:07:14 +0100 Subject: [PATCH 024/149] feat: refs #7134 #7134 use VN_CURDATE --- db/routines/vn/procedures/supplier_statementWithEntries.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/db/routines/vn/procedures/supplier_statementWithEntries.sql b/db/routines/vn/procedures/supplier_statementWithEntries.sql index c0014f8e5c..b678588fec 100644 --- a/db/routines/vn/procedures/supplier_statementWithEntries.sql +++ b/db/routines/vn/procedures/supplier_statementWithEntries.sql @@ -154,7 +154,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), From aa2f9985cdde35ec901b5fa76d5d83f0e7434f24 Mon Sep 17 00:00:00 2001 From: Javier Segarra Date: Wed, 20 Nov 2024 14:07:35 +0100 Subject: [PATCH 025/149] feat: refs #7134 change index --- modules/supplier/back/methods/supplier/receipts.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/supplier/back/methods/supplier/receipts.js b/modules/supplier/back/methods/supplier/receipts.js index dce9c31d4e..474cd256f2 100644 --- a/modules/supplier/back/methods/supplier/receipts.js +++ b/modules/supplier/back/methods/supplier/receipts.js @@ -66,7 +66,7 @@ module.exports = Self => { stmts.push(`DROP TEMPORARY TABLE tmp.supplierStatement`); const sql = ParameterizedSQL.join(stmts, ';'); const results = await conn.executeStmt(sql); - const resultsIndex = stmts.length - 1; + const resultsIndex = stmts.length - 2; const result = results[resultsIndex]; return result; }; From 568661021a265f6e39f3c2b4557f5d83fa2b7060 Mon Sep 17 00:00:00 2001 From: Jon Date: Fri, 29 Nov 2024 11:54:53 +0100 Subject: [PATCH 026/149] feat: refs #7965 added #6242 back to unify PR --- .../11306-greenMonstera/00-firstScript.sql | 3 + modules/ticket/back/methods/ticket/filter.js | 37 ++------- .../ticket/back/methods/ticket/getSales.js | 9 +- .../back/methods/ticket/getTicketProblems.js | 83 +++++++++++++++++++ .../ticket/specs/getTicketProblems.spec.js | 21 +++++ modules/ticket/back/models/ticket-methods.js | 1 + 6 files changed, 116 insertions(+), 38 deletions(-) create mode 100644 db/versions/11306-greenMonstera/00-firstScript.sql create mode 100644 modules/ticket/back/methods/ticket/getTicketProblems.js create mode 100644 modules/ticket/back/methods/ticket/specs/getTicketProblems.spec.js diff --git a/db/versions/11306-greenMonstera/00-firstScript.sql b/db/versions/11306-greenMonstera/00-firstScript.sql new file mode 100644 index 0000000000..c9edc6bfb9 --- /dev/null +++ b/db/versions/11306-greenMonstera/00-firstScript.sql @@ -0,0 +1,3 @@ +-- Place your SQL code here +INSERT INTO salix.ACL (model,property,accessType,permission,principalType,principalId) + VALUES ('Ticket','getTicketProblems','READ','ALLOW','ROLE','employee'); diff --git a/modules/ticket/back/methods/ticket/filter.js b/modules/ticket/back/methods/ticket/filter.js index 50481f05b6..f0116424ab 100644 --- a/modules/ticket/back/methods/ticket/filter.js +++ b/modules/ticket/back/methods/ticket/filter.js @@ -306,11 +306,7 @@ module.exports = Self => { (INDEX (ticketFk)) ENGINE = MEMORY SELECT f.id ticketFk - FROM tmp.filter f - LEFT JOIN alertLevel al ON al.id = f.alertLevel - WHERE (al.code = 'FREE' OR f.alertLevel IS NULL) - AND f.shipped >= ? - `, [date]); + FROM tmp.filter f`); stmts.push(stmt); stmts.push('CALL ticket_getProblems(FALSE)'); @@ -330,34 +326,13 @@ module.exports = Self => { if (args.problems != undefined && (!args.from && !args.to)) throw new UserError('Choose a date range or days forward'); - let condition; - let hasProblem; - let hasWhere; - switch (args.problems) { - case true: - condition = `or`; - hasProblem = true; - hasWhere = true; - break; - - case false: - condition = `and`; - hasProblem = null; - hasWhere = true; - break; + if (typeof args.problems == 'boolean') { + let condition = 0; + if (args.problems) + condition = {neq: condition}; + stmt.merge(conn.makeWhere({'tp.totalProblems': condition})); } - const problems = {[condition]: [ - {'tp.isFreezed': hasProblem}, - {'tp.hasRisk': hasProblem}, - {'tp.hasTicketRequest': hasProblem}, - {'tp.hasItemShortage': hasProblem}, - {'tp.hasRounding': hasProblem} - ]}; - - if (hasWhere) - stmt.merge(conn.makeWhere(problems)); - if (filter.order) { if (typeof filter.order == 'string') filter.order = [filter.order]; const index = filter.order.findIndex(o => o.includes('stateFk')); diff --git a/modules/ticket/back/methods/ticket/getSales.js b/modules/ticket/back/methods/ticket/getSales.js index 5b2288d317..3b5ee21a67 100644 --- a/modules/ticket/back/methods/ticket/getSales.js +++ b/modules/ticket/back/methods/ticket/getSales.js @@ -98,14 +98,9 @@ module.exports = Self => { for (let sale of sales) { const problems = saleProblems.get(sale.id); - const itemStock = itemAvailable.get(sale.itemFk); - sale.available = itemStock.available; - sale.visible = itemStock.visible; - sale.claim = claimedSales.get(sale.id); if (problems) { - sale.itemShortage = problems.itemShortage; - sale.hasTicketRequest = problems.hasTicketRequest; - sale.hasComponentLack = problems.hasComponentLack; + for (const problem in problems) + sale[problem] = problems[problem]; } if (salesWithLogs.includes(sale.id)) sale.$hasLogs = true; diff --git a/modules/ticket/back/methods/ticket/getTicketProblems.js b/modules/ticket/back/methods/ticket/getTicketProblems.js new file mode 100644 index 0000000000..351e07b679 --- /dev/null +++ b/modules/ticket/back/methods/ticket/getTicketProblems.js @@ -0,0 +1,83 @@ +const {buildFilter} = require('vn-loopback/util/filter'); + +const ParameterizedSQL = require('loopback-connector').ParameterizedSQL; + +module.exports = Self => { + Self.remoteMethodCtx('getTicketProblems', { + description: 'Get problems for a ticket', + accessType: 'READ', + accepts: [{ + arg: 'id', + type: 'number', + required: true, + description: 'The ticket id', + http: {source: 'path'} + }], + returns: { + type: ['object'], + root: true + }, + http: { + path: `/:id/getTicketProblems`, + verb: 'get' + } + }); + + Self.getTicketProblems = async(ctx, id, options) => { + const myOptions = {}; + const stmts = []; + const conn = Self.dataSource.connector; + let stmt; + const ticketId = id; + const where = buildFilter(ctx.args, param => { + switch (param) { + case 'id': + return {'t.id': ticketId}; + } + }); + + if (typeof options == 'object') + Object.assign(myOptions, options); + + stmt = new ParameterizedSQL(` + CREATE OR REPLACE TEMPORARY TABLE tmp.filter + (INDEX (id)) + ENGINE = MEMORY + SELECT t.id + FROM ticket t + `); + + stmt.merge(conn.makeWhere(where)); + stmts.push(stmt); + + stmt = new ParameterizedSQL(` + CREATE OR REPLACE TEMPORARY TABLE tmp.ticket + (INDEX (ticketFk)) + ENGINE = MEMORY + SELECT f.id AS ticketFk + FROM tmp.filter f + `); + stmts.push(stmt); + + stmts.push('CALL ticket_getProblems(FALSE)'); + + stmt = new ParameterizedSQL(` + SELECT f.*, tp.* + FROM tmp.filter f + LEFT JOIN tmp.ticketProblems tp ON tp.ticketFk = f.id + `); + const ticketsIndex = stmts.push(stmt) - 1; + + stmts.push(` + DROP TEMPORARY TABLE IF EXISTS + tmp.filter, + tmp.ticket, + tmp.ticketProblems + `); + + const sql = ParameterizedSQL.join(stmts, ';'); + const result = await conn.executeStmt(sql, myOptions); + + return result[ticketsIndex]; + }; +}; diff --git a/modules/ticket/back/methods/ticket/specs/getTicketProblems.spec.js b/modules/ticket/back/methods/ticket/specs/getTicketProblems.spec.js new file mode 100644 index 0000000000..56c3edc1b9 --- /dev/null +++ b/modules/ticket/back/methods/ticket/specs/getTicketProblems.spec.js @@ -0,0 +1,21 @@ +const models = require('vn-loopback/server/server').models; + +fdescribe('ticket getTicketProblems()', () => { + const ctx = {req: {accessToken: 9}}; + it('should return the problems of a ticket', async() => { + const tx = await models.Ticket.beginTransaction({}); + + try { + const options = {transaction: tx}; + + const problems = await models.Ticket.getTicketProblems(ctx, 11, options); + + expect(problems[7].totalProblems).toEqual(3); + + await tx.rollback(); + } catch (e) { + await tx.rollback(); + throw e; + } + }); +}); diff --git a/modules/ticket/back/models/ticket-methods.js b/modules/ticket/back/models/ticket-methods.js index 620b3e1841..995fa2da3c 100644 --- a/modules/ticket/back/models/ticket-methods.js +++ b/modules/ticket/back/models/ticket-methods.js @@ -46,4 +46,5 @@ module.exports = function(Self) { require('../methods/ticket/docuwareDownload')(Self); require('../methods/ticket/myLastModified')(Self); require('../methods/ticket/setWeight')(Self); + require('../methods/ticket/getTicketProblems')(Self); }; From 8fedd7893883f356b4a0f873ec356ded9709bb7b Mon Sep 17 00:00:00 2001 From: Jon Date: Fri, 29 Nov 2024 12:47:24 +0100 Subject: [PATCH 027/149] fix: refs #7965 filter and sales back tests --- .../ticket/back/methods/ticket/specs/filter.spec.js | 10 +++++----- .../ticket/back/methods/ticket/specs/getSales.spec.js | 1 - .../methods/ticket/specs/getTicketProblems.spec.js | 2 +- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/modules/ticket/back/methods/ticket/specs/filter.spec.js b/modules/ticket/back/methods/ticket/specs/filter.spec.js index d06d02f23a..cbd799431e 100644 --- a/modules/ticket/back/methods/ticket/specs/filter.spec.js +++ b/modules/ticket/back/methods/ticket/specs/filter.spec.js @@ -80,11 +80,11 @@ describe('ticket filter()', () => { const result = await models.Ticket.filter(ctx, filter, options); result.forEach(ticket => { - expect(ticket.isFreezed).toEqual(null); - expect(ticket.hasRisk).toEqual(null); - expect(ticket.hasTicketRequest).toEqual(null); - expect(ticket.hasItemShortage).toEqual(null); - expect(ticket.hasRounding).toEqual(null); + expect(ticket.isFreezed).toEqual(0); + expect(ticket.hasRisk).toEqual(0); + expect(ticket.hasTicketRequest).toEqual(0); + expect(ticket.hasItemShortage).toEqual(0); + expect(ticket.hasRounding).toEqual(0); }); await tx.rollback(); diff --git a/modules/ticket/back/methods/ticket/specs/getSales.spec.js b/modules/ticket/back/methods/ticket/specs/getSales.spec.js index 7c0a67d451..f0a99b90b6 100644 --- a/modules/ticket/back/methods/ticket/specs/getSales.spec.js +++ b/modules/ticket/back/methods/ticket/specs/getSales.spec.js @@ -15,7 +15,6 @@ describe('ticket getSales()', () => { expect(sales[1].item).toBeDefined(); expect(sales[2].item).toBeDefined(); expect(sales[3].item).toBeDefined(); - expect(sales[0].claim).toBeDefined(); await tx.rollback(); } catch (e) { diff --git a/modules/ticket/back/methods/ticket/specs/getTicketProblems.spec.js b/modules/ticket/back/methods/ticket/specs/getTicketProblems.spec.js index 56c3edc1b9..f46c27e4dc 100644 --- a/modules/ticket/back/methods/ticket/specs/getTicketProblems.spec.js +++ b/modules/ticket/back/methods/ticket/specs/getTicketProblems.spec.js @@ -1,6 +1,6 @@ const models = require('vn-loopback/server/server').models; -fdescribe('ticket getTicketProblems()', () => { +describe('ticket getTicketProblems()', () => { const ctx = {req: {accessToken: 9}}; it('should return the problems of a ticket', async() => { const tx = await models.Ticket.beginTransaction({}); From 0a4f4c5926b5a86138d0771f7e8ff80c73e209f5 Mon Sep 17 00:00:00 2001 From: Javier Segarra Date: Thu, 5 Dec 2024 14:54:01 +0100 Subject: [PATCH 028/149] feat: refs #7134 rename supplier.createReceipt by createPayment --- .../{createReceipt.js => createPayment.js} | 151 ++++++++++-------- modules/supplier/back/models/supplier.js | 2 +- 2 files changed, 88 insertions(+), 65 deletions(-) rename modules/supplier/back/methods/supplier/{createReceipt.js => createPayment.js} (56%) diff --git a/modules/supplier/back/methods/supplier/createReceipt.js b/modules/supplier/back/methods/supplier/createPayment.js similarity index 56% rename from modules/supplier/back/methods/supplier/createReceipt.js rename to modules/supplier/back/methods/supplier/createPayment.js index c051a67510..8fa61f0c91 100644 --- a/modules/supplier/back/methods/supplier/createReceipt.js +++ b/modules/supplier/back/methods/supplier/createPayment.js @@ -1,77 +1,89 @@ -const UserError = require('vn-loopback/util/user-error'); +// const UserError = require('vn-loopback/util/user-error'); // Insert payment // divisa = solo en caso que la moneda sea distinta a €, module.exports = function(Self) { - Self.remoteMethodCtx('createReceipt', { + Self.remoteMethodCtx('createPayment', { description: 'Creates receipt and its compensation if necessary', accessType: 'READ', - accepts: [{ - arg: 'supplierFk', - type: 'number', - description: 'The supplier id', - http: {source: 'path'} - }, - { - arg: 'received', - type: 'Date', - required: true - }, - { - arg: 'dueDate', - type: 'Date', - required: true - }, - { - arg: 'companyFk', - type: 'number', - required: true - }, - { - arg: 'currencyFk', - type: 'number', - required: true - }, - { - arg: 'bankFk', - type: 'number', - required: true - }, - { - arg: 'payMethodFk', - type: 'number', - required: true - }, - { - arg: 'amount', - type: 'number', - required: true - }, - { - arg: 'concept', - type: 'string', - required: true - }, - { - arg: 'divisa', - type: 'number' - }, - { - arg: 'compensationAccount', - type: 'any' - }], + accepts: [ + { + arg: 'received', + type: 'Date', + required: true + }, + { + arg: 'dueDate', + type: 'Date', + required: true + }, + { + arg: 'supplierFk', + type: 'number', + description: 'The supplier id', + http: {source: 'path'} + }, + { + arg: 'amount', + type: 'number', + required: true + }, + { + arg: 'currencyFk', + type: 'number', + required: true + }, { + arg: 'divisa', + type: 'number', + required: true + }, + { + arg: 'bankFk', + type: 'number', + required: true + }, + { + arg: 'payMethodFk', + type: 'number', + required: true + }, + { + arg: 'bankingFees', + type: 'number', + required: true + }, + + { + arg: 'concept', + type: 'string', + required: true + }, { + arg: 'companyFk', + type: 'number', + required: true + }, + + { + arg: 'isConciliated', + type: 'boolean' + }, + { + arg: 'compensationAccount', + type: 'any' + } + ], returns: { root: true, type: 'Object' }, http: { verb: 'post', - path: '/:supplierFk/createReceipt' + path: '/:supplierFk/createPayment' }, accessScopes: ['DEFAULT', 'read:multimedia'] }); - Self.createReceipt = async(ctx, options) => { + Self.createPayment = async(ctx, options) => { const models = Self.app.models; const args = ctx.args; const date = Date.vnNew(); @@ -91,11 +103,11 @@ module.exports = function(Self) { try { delete args.ctx; // Remove unwanted properties - const originalSupplier = await models.Supplier.findById(args.supplierFk, null, myOptions); - const bank = await models.Accounting.findById(args.bankFk, null, myOptions); - const accountingType = await models.AccountingType.findById(bank.accountingTypeFk, null, myOptions); + // const originalSupplier = await models.Supplier.findById(args.supplierFk, null, myOptions); + // const bank = await models.Accounting.findById(args.bankFk, null, myOptions); + // const accountingType = await models.AccountingType.findById(bank.accountingTypeFk, null, myOptions); - if (accountingType.code == 'compensation') { + /* if (accountingType.code == 'compensation') { if (!args.compensationAccount) throw new UserError('Compensation account is empty'); @@ -161,10 +173,21 @@ module.exports = function(Self) { myOptions ); } - const newReceipt = await models.Receipt.create(args, myOptions); + */ + const newPayment = await models.Payment.create(args, myOptions); + // if (/* Supplier is client*/ false) { + // const newReceipt = await models.Receipt.create({ + // invoiceFk: newPayment.id, + // amountPaid: args.amount, + // payed: args.received, + // bankFk: args.bankFk, + // companyFk: args.companyFk, + // clientFk: args.supplierFk, + // }, myOptions); + // } if (tx) await tx.commit(); - return newReceipt; + return newPayment; } catch (e) { if (tx) await tx.rollback(); throw e; diff --git a/modules/supplier/back/models/supplier.js b/modules/supplier/back/models/supplier.js index 20313801e6..6bf9ecf32f 100644 --- a/modules/supplier/back/models/supplier.js +++ b/modules/supplier/back/models/supplier.js @@ -8,7 +8,7 @@ module.exports = Self => { require('../methods/supplier/updateFiscalData')(Self); require('../methods/supplier/consumption')(Self); require('../methods/supplier/freeAgencies')(Self); - require('../methods/supplier/createReceipt')(Self); + require('../methods/supplier/createPayment')(Self); require('../methods/supplier/receipts')(Self); require('../methods/supplier/campaignMetricsPdf')(Self); require('../methods/supplier/campaignMetricsEmail')(Self); From f86bd1233bc2c05d499fdd51f4b79a1342cd5009 Mon Sep 17 00:00:00 2001 From: Javier Segarra Date: Mon, 9 Dec 2024 14:19:43 +0100 Subject: [PATCH 029/149] feat: refs #7134 tiller --- back/models/payment.json | 4 +- modules/client/back/models/till.js | 6 + modules/client/back/models/tillIn.js | 9 ++ modules/client/back/models/tillOut.js | 9 ++ modules/client/back/models/tiller.js | 6 + .../back/methods/supplier/createPayment.js | 107 +++++++++++++++++- 6 files changed, 136 insertions(+), 5 deletions(-) create mode 100644 modules/client/back/models/till.js create mode 100644 modules/client/back/models/tillIn.js create mode 100644 modules/client/back/models/tillOut.js create mode 100644 modules/client/back/models/tiller.js diff --git a/back/models/payment.json b/back/models/payment.json index ed354969e5..2bc6655033 100644 --- a/back/models/payment.json +++ b/back/models/payment.json @@ -52,7 +52,7 @@ }, "payMethod": { "type": "belongsTo", - "model": "PayMethodFk", + "model": "PayMethod", "foreignKey": "payMethodFk" }, "company": { @@ -61,4 +61,4 @@ "foreignKey": "companyFk" } } -} \ No newline at end of file +} diff --git a/modules/client/back/models/till.js b/modules/client/back/models/till.js new file mode 100644 index 0000000000..0ce8f96069 --- /dev/null +++ b/modules/client/back/models/till.js @@ -0,0 +1,6 @@ + +module.exports = Self => { + require('./tillIn')(Self); + require('./tillOut')(Self); + require('./tiller')(Self); +}; diff --git a/modules/client/back/models/tillIn.js b/modules/client/back/models/tillIn.js new file mode 100644 index 0000000000..112741422b --- /dev/null +++ b/modules/client/back/models/tillIn.js @@ -0,0 +1,9 @@ + +module.exports = Self => { + Self.tillIn = async(ctx, options) => { + const query = `INSERT INTO vn.promissoryNote ( concept, paymentFk) VALUES(?, ? )`; + const pagareId = await Self.rawSql(query, [concept, paymentFk], myOptions); + if (pagareId) return pagareId; + throw new UserError('Till In'); + }; +}; diff --git a/modules/client/back/models/tillOut.js b/modules/client/back/models/tillOut.js new file mode 100644 index 0000000000..005607c9a8 --- /dev/null +++ b/modules/client/back/models/tillOut.js @@ -0,0 +1,9 @@ + +module.exports = Self => { + Self.tillOut = async(ctx, options) => { + const query = `INSERT INTO vn.promissoryNote ( id, dated, serie, concept, in, out, bankFk, companyFk, isAccountable, InForeignValue, OutForeignValue, workerFk, calculatedCode, number, isLinked, created, isOk, warehouseFk, isConciliate, supplierAccountFk) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )`; + const pagareId = await Self.rawSql(query, [concept, paymentFk], myOptions); + if (pagareId) return pagareId; + throw new UserError('Till Out'); + }; +}; diff --git a/modules/client/back/models/tiller.js b/modules/client/back/models/tiller.js new file mode 100644 index 0000000000..d40e24039c --- /dev/null +++ b/modules/client/back/models/tiller.js @@ -0,0 +1,6 @@ + +module.exports = Self => { + Self.tiller = async(ctx, options) => { + throw new UserError('Till In'); + }; +}; diff --git a/modules/supplier/back/methods/supplier/createPayment.js b/modules/supplier/back/methods/supplier/createPayment.js index 8fa61f0c91..9dce4d9276 100644 --- a/modules/supplier/back/methods/supplier/createPayment.js +++ b/modules/supplier/back/methods/supplier/createPayment.js @@ -34,8 +34,7 @@ module.exports = function(Self) { required: true }, { arg: 'divisa', - type: 'number', - required: true + type: 'any', }, { arg: 'bankFk', @@ -174,7 +173,11 @@ module.exports = function(Self) { ); } */ - const newPayment = await models.Payment.create(args, myOptions); + const bodyPayment = { + ...args, + dueDate: args.received, + }; + const newPayment = await models.Payment.create(bodyPayment, myOptions); // if (/* Supplier is client*/ false) { // const newReceipt = await models.Receipt.create({ // invoiceFk: newPayment.id, @@ -185,8 +188,99 @@ module.exports = function(Self) { // clientFk: args.supplierFk, // }, myOptions); // } + // const supplier = await Self.app.models.Supplier.findById(args.supplierFk, {fields: ['nif'], include: { + // relation: 'client' + // }}, myOptions); + // const client = await Self.app.models.Client.findOne({where: {nif: supplier.fi}}, myOptions); + if (tx) await tx.commit(); + switch (bodyPayment.payMethodFk) { + case 1: + case 10: + case 20: + await models.Till.tillIn(args, myOptions); + throw new UserError('Metálico'); + // Call Salidadecaja( + // strCONCEPTO & " : " & DFirst("[Proveedor]", "Proveedores", + // " [Id_Proveedor] = " & vSupplierFk), + // "R", + // _ "0", + // _ Replace(str(Me.n_pago), ",", "."), _ + // Me.n_fecha, _ + // DFirst("[oficial]", "Proveedores", "[Id_Proveedor] =" & vSupplierFk), + // _ Me.n_caja, Me.empresa) + + // Call sql(msql("UPDATE pago SET conciliado = TRUE WHERE id = %", pagoId), False, True) + // Public Function Salidadecaja(strCONCEPTE As String, strSERIE As String, strREF As String, strSALIDA As String, _ + // datfecha As Date, strCOLOR As String, strCAJA As String, intEmp As Integer) + + // Select Case Trim(strCAJA) + + // Case "11", "12", "13" + + // Call abrecajon + + // End Select + + // Call sql(msql("INSERT INTO Cajas ( Concepto, Serie, Numero, Salida, Cajafecha, Partida, Id_Banco, Id_Trabajador,empresa_id ) " & _ + // "SELECT %,%,%,%,%,%,%,%,%", strCONCEPTE, strSERIE, Nz(strREF, 0), strSALIDA, datfecha, strCOLOR, strCAJA, workerId, intEmp), _ + // False, True) + + // End Function + // break; + case 2: + // Call emitir_pagare(pagoId, strCONCEPTO) + await emitPagare(args.concept, newPayment.id); + + // Public Function emitir_pagare(pagoId As Long, strCONCEPTO As String) + // Call sql(msql("INSERT INTO Pagares(pago_id,Concepto) " & _ + // "VALUES (%,%)", pagoId, strCONCEPTO), False, True) + + // Call sql("SELECT LAST_INSERT_ID() as id", True, False) + + // Call sql("SELECT Pagares.Id_Pagare, Pagares.Concepto, Proveedores.Proveedor, Proveedores.Domicilio,empresa.logo, " & _ + // "Proveedores.codpos, Proveedores.Localidad, [importe] AS texto, Pagares.Fechaemision, pago.importe,pago.fecha, " & _ + // "pago.empresa_id, Proveedores.postcode_id AS CP FROM ((Proveedores INNER JOIN pago ON Proveedores.Id_Proveedor = pago.id_proveedor) " & _ + // "INNER JOIN Pagares ON pago.id = Pagares.pago_id) INNER JOIN empresa ON pago.empresa_id = empresa.id " & _ + // "WHERE Pagares.Id_Pagare = " & DFirst("[id]", "cstSQL"), True, False, "pagareultimo") + // DoCmd.openReport "Pagare", acViewPreview + // End Function + // break; + case 3: + throw new UserError('Compensación'); + // Dim vOriginalAccount As String + // vOriginalAccount = db.getValueV("SELECT account FROM vn.supplier WHERE id = #", vSupplierFk) + // 'Call compensar(Me.n_caja, Me.n_fecha, strCONCEPTO, Me.empresa, Me.n_pago, vOriginalAccount, pagoId) + // db.execV "CALL vn.ledger_doCompensation(#, #, #, #, #, #, #)", Me.n_fecha, vCompensationAccount, Me.n_caja, strCONCEPTO, Me.n_pago, Me.empresa, vOriginalAccount + // db.execV "UPDATE pago SET conciliado = TRUE, concepte = CONCAT(concepte, ' ', #) WHERE id = #", vCompensationAccount, pagoId + // break; + case 8: + throw new UserError('SEPA-CORE/B2B'); + + // If db.getValueFromDefV("paymentHasIban", vSupplierFk) = 0 Then + // MsgBox "Rellene los campos iban y entidad.", vbCritical + // Exit Sub + // End If + // Dim isUeeMember As Boolean + // isUeeMember = db.getValueV("SELECT c.isUeeMember FROM vn.supplier s JOIN vn.country c ON c.id = s.countryFk WHERE s.id = #", vSupplierFk) + + // Call GenerarPagoSEPA( _ + // Me.n_fecha, _ + // Me.empresa, _ + // Replace(Format(IIf(Me.n_moneda.column(1) = "EUR", Me.n_pago, Me.n_cambio), "0.00"), ",", "."), _ + // Me.n_caja, _ + // isUeeMember, _ + // "TRANSFER_" & DFirst("alias", "Proveedores", "[Id_Proveedor] =" & vSupplierFk), _ + // 1, _ + // Me.n_moneda.column(1), _ + // vSupplierFk) + // MsgBox "Fichero Generado CORRECTAMENTE", vbInformation + // break; + + default: + break; + } return newPayment; } catch (e) { if (tx) await tx.rollback(); @@ -194,3 +288,10 @@ module.exports = function(Self) { } }; }; + +async function emitPagare(concept, paymentFk) { + const query = `INSERT INTO vn.promissoryNote ( concept, paymentFk) VALUES(?, ? )`; + const pagareId = await Self.rawSql(query, [concept, paymentFk], myOptions); + if (pagareId) return pagareId; + throw new UserError('Pagaré'); +} From e2a4c5339a44b8c614d2d149ffecd812d385629f Mon Sep 17 00:00:00 2001 From: carlossa Date: Mon, 16 Dec 2024 13:01:44 +0100 Subject: [PATCH 030/149] fix: refs #6553 fix back --- db/versions/11076-blueChico/00-firstScript.sql | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/db/versions/11076-blueChico/00-firstScript.sql b/db/versions/11076-blueChico/00-firstScript.sql index 84cc82dd92..75fdc0c56f 100644 --- a/db/versions/11076-blueChico/00-firstScript.sql +++ b/db/versions/11076-blueChico/00-firstScript.sql @@ -3,21 +3,21 @@ ADD CONSTRAINT `business_companyCodeFk` FOREIGN KEY (`companyCodeFk`) REFERENCES -- 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','*','*','ALLOW','ROLE','hr'); + VALUES ('BusinessReasonEnd','find','*','ALLOW','ROLE','hr'); INSERT INTO salix.ACL (model,property,accessType,permission,principalType,principalId) - VALUES ('CalendarType','*','*','ALLOW','ROLE','hr'); + VALUES ('CalendarType','find','*','ALLOW','ROLE','hr'); INSERT INTO salix.ACL (model,property,accessType,permission,principalType,principalId) - VALUES ('OccupationCode','*','*','ALLOW','ROLE','hr'); + VALUES ('OccupationCode','find','*','ALLOW','ROLE','hr'); INSERT INTO salix.ACL (model,property,accessType,permission,principalType,principalId) - VALUES ('BusinessReasonEnd','*','*','ALLOW','ROLE','hr'); + VALUES ('BusinessReasonEnd','find','*','ALLOW','ROLE','hr'); INSERT INTO salix.ACL (model,property,accessType,permission,principalType,principalId) - VALUES ('WorkerBusinessProfessionalCategory','*','*','ALLOW','ROLE','hr'); + VALUES ('WorkerBusinessProfessionalCategory','find','*','ALLOW','ROLE','hr'); INSERT INTO salix.ACL (model,property,accessType,permission,principalType,principalId) - VALUES ('WorkerBusinessAgreement','*','*','ALLOW','ROLE','hr'); + VALUES ('WorkerBusinessAgreement','find','*','ALLOW','ROLE','hr'); INSERT INTO salix.ACL (model,property,accessType,permission,principalType,principalId) - VALUES ('WorkerBusinessType','*','*','ALLOW','ROLE','hr'); + VALUES ('WorkerBusinessType','find','*','ALLOW','ROLE','hr'); INSERT INTO salix.ACL (model,property,accessType,permission,principalType,principalId) - VALUES ('PayrollCategory','*','*','ALLOW','ROLE','hr'); + 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) From 46c4f4786a0925443f5bfa3849c4721367871a0e Mon Sep 17 00:00:00 2001 From: robert Date: Wed, 18 Dec 2024 12:03:48 +0100 Subject: [PATCH 031/149] feat: refs #6702 saleCloned --- loopback/locale/es.json | 2 +- modules/ticket/back/methods/sale/updatePrice.js | 4 +++- modules/ticket/back/models/sale.js | 8 ++++++++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/loopback/locale/es.json b/loopback/locale/es.json index a81f2574fa..68514b9f36 100644 --- a/loopback/locale/es.json +++ b/loopback/locale/es.json @@ -123,7 +123,7 @@ "Added sale to ticket": "He añadido la siguiente linea al ticket [{{ticketId}}]({{{ticketUrl}}}): {{{addition}}}", "Changed sale discount": "He cambiado el descuento de las siguientes lineas al ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", "Created claim": "He creado la reclamación [{{claimId}}]({{{claimUrl}}}) de las siguientes lineas del ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", - "Changed sale price": "He cambiado el precio de [{{itemId}} {{concept}}]({{{itemUrl}}}) ({{quantity}}) de {{oldPrice}}€ ➔ *{{newPrice}}€* del ticket [{{ticketId}}]({{{ticketUrl}}})", + "Changed sale price": "He cambiado el precio de [{{itemId}} {{concept}}]({{{itemUrl}}}) {{ticketClone}} ({{quantity}}) de {{oldPrice}}€ ➔ *{{newPrice}}€* del ticket [{{ticketId}}]({{{ticketUrl}}})", "Changed sale quantity": "He cambiado {{changes}} del ticket [{{ticketId}}]({{{ticketUrl}}})", "Changes in sales": "la cantidad de [{{itemId}} {{concept}}]({{{itemUrl}}}) de {{oldQuantity}} ➔ *{{newQuantity}}*", "State": "Estado", diff --git a/modules/ticket/back/methods/sale/updatePrice.js b/modules/ticket/back/methods/sale/updatePrice.js index d4f128082d..b6276c99a0 100644 --- a/modules/ticket/back/methods/sale/updatePrice.js +++ b/modules/ticket/back/methods/sale/updatePrice.js @@ -113,6 +113,7 @@ module.exports = Self => { const salesPerson = sale.ticket().client().salesPersonUser(); if (salesPerson) { const url = await Self.app.models.Url.getUrl(); + const ticketWeekly = await models.Sale.ticketClone(sale.id); const message = $t('Changed sale price', { ticketId: sale.ticket().id, itemId: sale.itemFk, @@ -121,7 +122,8 @@ module.exports = Self => { oldPrice: oldPrice, newPrice: newPrice, ticketUrl: `${url}ticket/${sale.ticket().id}/sale`, - itemUrl: `${url}item/${sale.itemFk}/summary` + itemUrl: `${url}item/${sale.itemFk}/summary`, + ticketCloned: ticketWeekly && $t('Is cloned', ticketWeekly) }); await models.Chat.sendCheckingPresence(ctx, salesPerson.id, message, myOptions); } diff --git a/modules/ticket/back/models/sale.js b/modules/ticket/back/models/sale.js index 3aa4cbf2ad..2550d76b46 100644 --- a/modules/ticket/back/models/sale.js +++ b/modules/ticket/back/models/sale.js @@ -136,4 +136,12 @@ module.exports = Self => { if (!saleGrouping?.newPrice || saleGrouping.newPrice > instance.price) throw new UserError('The price of the item changed'); }); + + Self.isCloned = async function(saleId) { + // let userId = ctx.req.accessToken.userId; + // return await Self.findById(userId, { + // fields: ['id', 'name', 'nickname'] + // }); + // return ticketId + }; }; From 6300795e525e3f11f3e56d375311336d2630222b Mon Sep 17 00:00:00 2001 From: guillermo Date: Wed, 18 Dec 2024 13:17:47 +0100 Subject: [PATCH 032/149] refactor: refs #8172 Created table parkingCoordinates --- db/dump/fixtures.before.sql | 4824 ++++++++--------- .../11389-yellowChico/00-firstScript.sql | 25 + 2 files changed, 2437 insertions(+), 2412 deletions(-) create mode 100644 db/versions/11389-yellowChico/00-firstScript.sql diff --git a/db/dump/fixtures.before.sql b/db/dump/fixtures.before.sql index 97ed0ae47e..f0916002ef 100644 --- a/db/dump/fixtures.before.sql +++ b/db/dump/fixtures.before.sql @@ -14,7 +14,7 @@ SET DEFAULT ROLE 'salix' FOR 'root'@'%'; CREATE SCHEMA IF NOT EXISTS `tmp`; UPDATE `util`.`config` - SET `environment`= 'development'; + SET `environment`= 'development'; -- FOR MOCK vn.time @@ -29,10 +29,10 @@ BEGIN SET vDate = '2000-01-01'; WHILE ( YEAR(vDate) <= 2002 ) DO - INSERT IGNORE INTO vn.`time` (dated, period, `month`, `year`, `day`, week, yearMonth, salesYear) + INSERT IGNORE INTO vn.`time` (dated, period, `month`, `year`, `day`, week, yearMonth, salesYear) VALUES (vDate, CONCAT(YEAR(vDate), (WEEK(vDate)+1)), MONTH(vDate), YEAR(vDate), DAY(vDate), WEEK(vDate)+1, CONCAT(YEAR(vDate), MONTH(vDate)), YEAR(vDate)); - SET vDate = DATE_ADD(vDate, INTERVAL 1 DAY); + SET vDate = DATE_ADD(vDate, INTERVAL 1 DAY); END WHILE; END$$ @@ -48,47 +48,47 @@ ALTER TABLE `vn`.`zoneGeo` AUTO_INCREMENT = 1; ALTER TABLE `vn`.`ticket` AUTO_INCREMENT = 1; INSERT INTO `salix`.`AccessToken` (`id`, `ttl`, `created`, `userId`) - VALUES - ('DEFAULT_TOKEN', '1209600', CURDATE(), 66); + VALUES + ('DEFAULT_TOKEN', '1209600', CURDATE(), 66); INSERT INTO `salix`.`printConfig` (`id`, `itRecipient`, `incidencesEmail`) - VALUES - (1, 'it@gotamcity.com', 'incidences@gotamcity.com'); + VALUES + (1, 'it@gotamcity.com', 'incidences@gotamcity.com'); INSERT INTO `vn`.`ticketConfig` (`id`, `scopeDays`) - VALUES - ('1', '6'); + VALUES + ('1', '6'); INSERT INTO `vn`.`bionicConfig` (`id`, `generalInflationCoeficient`, `minimumDensityVolumetricWeight`, `verdnaturaVolumeBox`, `itemCarryBox`) - VALUES - (1, 1.30, 167.00, 138000, 71); + VALUES + (1, 1.30, 167.00, 138000, 71); INSERT INTO `vn`.`chatConfig` (`id`, `host`, `api`) - VALUES - (1, 'https://chat.verdnatura.es', 'https://chat.verdnatura.es/api/v1'); + VALUES + (1, 'https://chat.verdnatura.es', 'https://chat.verdnatura.es/api/v1'); INSERT IGNORE INTO `vn`.`greugeConfig`(`id`, `freightPickUpPrice`) - VALUES - ('1', '11'); + VALUES + ('1', '11'); UPDATE `account`.`role` SET id = 100 WHERE id = 0; INSERT INTO `account`.`roleConfig`(`id`, `mysqlPassword`, `rolePrefix`, `userPrefix`, `userHost`, `tplUser`) - VALUES - (1, 'mysqlPassword', '$', '!', '%', 'any'); + VALUES + (1, 'mysqlPassword', '$', '!', '%', 'any'); CALL `account`.`role_sync`; INSERT INTO `account`.`user`(`id`,`name`, `nickname`, `role`,`active`,`email`, `lang`, `image`, `password`) - SELECT id, LOWER(name), CONCAT(name, 'Nick'), id, 1, CONCAT(name, '@mydomain.com'), 'en', '4fa3ada0-3ac4-11eb-9ab8-27f6fc3b85fd', '$2b$10$UzQHth.9UUQ1T5aiQJ21lOU0oVlbxoqH4PFM9V8T90KNSAcg0eEL2' - FROM `account`.`role` - ORDER BY id; + SELECT id, LOWER(name), CONCAT(name, 'Nick'), id, 1, CONCAT(name, '@mydomain.com'), 'en', '4fa3ada0-3ac4-11eb-9ab8-27f6fc3b85fd', '$2b$10$UzQHth.9UUQ1T5aiQJ21lOU0oVlbxoqH4PFM9V8T90KNSAcg0eEL2' + FROM `account`.`role` + ORDER BY id; INSERT INTO `account`.`account`(`id`) - SELECT `u`.`id` - FROM `account`.`user` `u` - JOIN `account`.`role` `r` ON `u`.`role` = `r`.`id` - WHERE `r`.`name` <> 'customer'; + SELECT `u`.`id` + FROM `account`.`user` `u` + JOIN `account`.`role` `r` ON `u`.`role` = `r`.`id` + WHERE `r`.`name` <> 'customer'; INSERT INTO `vn`.`educationLevel` (`id`, `name`) VALUES @@ -96,14 +96,14 @@ INSERT INTO `vn`.`educationLevel` (`id`, `name`) (2, 'ENSEÑANZAS DE BACHILLERATO'); INSERT INTO `vn`.`worker`(`id`,`code`, `firstName`, `lastName`, `bossFk`) - SELECT id,UPPER(LPAD(role, 3, '0')), name, name, NULL - FROM `account`.`user` - WHERE `id` = 9; + SELECT id,UPPER(LPAD(role, 3, '0')), name, name, NULL + FROM `account`.`user` + WHERE `id` = 9; INSERT INTO `vn`.`worker`(`id`,`code`, `firstName`, `lastName`, `bossFk`) - SELECT id,UPPER(LPAD(role, 3, '0')), name, name, 9 - FROM `account`.`user` - WHERE `id` <> 9; + SELECT id,UPPER(LPAD(role, 3, '0')), name, name, 9 + FROM `account`.`user` + WHERE `id` <> 9; UPDATE `vn`.`worker` SET bossFk = NULL WHERE id = 20; UPDATE `vn`.`worker` SET bossFk = 20 WHERE id = 1 OR id = 9; @@ -113,176 +113,176 @@ UPDATE `vn`.`worker` SET bossFk = 50 WHERE id = 49; DELETE FROM `vn`.`worker` WHERE firstName ='customer'; INSERT INTO `hedera`.`tpvConfig`(`id`, `currency`, `terminal`, `transactionType`, `maxAmount`, `employeeFk`, `testUrl`) - VALUES - (1, 978, 1, 0, 2000, 9, 0); + VALUES + (1, 978, 1, 0, 2000, 9, 0); INSERT INTO hedera.orderConfig (`id`, `employeeFk`, `defaultAgencyFk`, `guestMethod`, `guestAgencyFk`, `reserveTime`, `defaultCompanyFk`) VALUES (1, 1, 2, 'PICKUP', 1, '00:20:00', 442); INSERT INTO `account`.`user`(`id`,`name`,`nickname`, `password`,`role`,`active`,`email`,`lang`, `image`) - VALUES - (1101, 'brucewayne', 'Bruce Wayne', '$2b$10$UzQHth.9UUQ1T5aiQJ21lOU0oVlbxoqH4PFM9V8T90KNSAcg0eEL2', 2, 1, 'BruceWayne@mydomain.com', 'es','1101'), - (1102, 'petterparker', 'Petter Parker', '$2b$10$UzQHth.9UUQ1T5aiQJ21lOU0oVlbxoqH4PFM9V8T90KNSAcg0eEL2', 131, 1, 'PetterParker@mydomain.com', 'en','1102'), - (1103, 'clarkkent', 'Clark Kent', '$2b$10$UzQHth.9UUQ1T5aiQJ21lOU0oVlbxoqH4PFM9V8T90KNSAcg0eEL2', 2, 1, 'ClarkKent@mydomain.com', 'fr','1103'), - (1104, 'tonystark', 'Tony Stark', '$2b$10$UzQHth.9UUQ1T5aiQJ21lOU0oVlbxoqH4PFM9V8T90KNSAcg0eEL2', 2, 1, 'TonyStark@mydomain.com', 'es','1104'), - (1105, 'maxeisenhardt', 'Max Eisenhardt', '$2b$10$UzQHth.9UUQ1T5aiQJ21lOU0oVlbxoqH4PFM9V8T90KNSAcg0eEL2', 2, 1, 'MaxEisenhardt@mydomain.com', 'pt','1105'), - (1106, 'davidcharleshaller', 'David Charles Haller', '$2b$10$UzQHth.9UUQ1T5aiQJ21lOU0oVlbxoqH4PFM9V8T90KNSAcg0eEL2', 1, 1, 'DavidCharlesHaller@mydomain.com', 'en','1106'), - (1107, 'hankpym', 'Hank Pym', '$2b$10$UzQHth.9UUQ1T5aiQJ21lOU0oVlbxoqH4PFM9V8T90KNSAcg0eEL2', 1, 1, 'HankPym@mydomain.com', 'en','1107'), - (1108, 'charlesxavier', 'Charles Xavier', '$2b$10$UzQHth.9UUQ1T5aiQJ21lOU0oVlbxoqH4PFM9V8T90KNSAcg0eEL2', 1, 1, 'CharlesXavier@mydomain.com', 'en','1108'), - (1109, 'brucebanner', 'Bruce Banner', '$2b$10$UzQHth.9UUQ1T5aiQJ21lOU0oVlbxoqH4PFM9V8T90KNSAcg0eEL2', 1, 1, 'BruceBanner@mydomain.com', 'en','1109'), - (1110, 'jessicajones', 'Jessica Jones', '$2b$10$UzQHth.9UUQ1T5aiQJ21lOU0oVlbxoqH4PFM9V8T90KNSAcg0eEL2', 1, 1, 'JessicaJones@mydomain.com', 'en','1110'), - (1111, 'missing', 'Missing', '$2b$10$UzQHth.9UUQ1T5aiQJ21lOU0oVlbxoqH4PFM9V8T90KNSAcg0eEL2', 2, 0, NULL, 'en','e7723f0b24ff05b32ed09d95196f2f29'), - (1112, 'trash', 'Trash', '$2b$10$UzQHth.9UUQ1T5aiQJ21lOU0oVlbxoqH4PFM9V8T90KNSAcg0eEL2', 2, 0, NULL, 'en','e7723f0b24ff05b32ed09d95196f2f29'); + VALUES + (1101, 'brucewayne', 'Bruce Wayne', '$2b$10$UzQHth.9UUQ1T5aiQJ21lOU0oVlbxoqH4PFM9V8T90KNSAcg0eEL2', 2, 1, 'BruceWayne@mydomain.com', 'es','1101'), + (1102, 'petterparker', 'Petter Parker', '$2b$10$UzQHth.9UUQ1T5aiQJ21lOU0oVlbxoqH4PFM9V8T90KNSAcg0eEL2', 131, 1, 'PetterParker@mydomain.com', 'en','1102'), + (1103, 'clarkkent', 'Clark Kent', '$2b$10$UzQHth.9UUQ1T5aiQJ21lOU0oVlbxoqH4PFM9V8T90KNSAcg0eEL2', 2, 1, 'ClarkKent@mydomain.com', 'fr','1103'), + (1104, 'tonystark', 'Tony Stark', '$2b$10$UzQHth.9UUQ1T5aiQJ21lOU0oVlbxoqH4PFM9V8T90KNSAcg0eEL2', 2, 1, 'TonyStark@mydomain.com', 'es','1104'), + (1105, 'maxeisenhardt', 'Max Eisenhardt', '$2b$10$UzQHth.9UUQ1T5aiQJ21lOU0oVlbxoqH4PFM9V8T90KNSAcg0eEL2', 2, 1, 'MaxEisenhardt@mydomain.com', 'pt','1105'), + (1106, 'davidcharleshaller', 'David Charles Haller', '$2b$10$UzQHth.9UUQ1T5aiQJ21lOU0oVlbxoqH4PFM9V8T90KNSAcg0eEL2', 1, 1, 'DavidCharlesHaller@mydomain.com', 'en','1106'), + (1107, 'hankpym', 'Hank Pym', '$2b$10$UzQHth.9UUQ1T5aiQJ21lOU0oVlbxoqH4PFM9V8T90KNSAcg0eEL2', 1, 1, 'HankPym@mydomain.com', 'en','1107'), + (1108, 'charlesxavier', 'Charles Xavier', '$2b$10$UzQHth.9UUQ1T5aiQJ21lOU0oVlbxoqH4PFM9V8T90KNSAcg0eEL2', 1, 1, 'CharlesXavier@mydomain.com', 'en','1108'), + (1109, 'brucebanner', 'Bruce Banner', '$2b$10$UzQHth.9UUQ1T5aiQJ21lOU0oVlbxoqH4PFM9V8T90KNSAcg0eEL2', 1, 1, 'BruceBanner@mydomain.com', 'en','1109'), + (1110, 'jessicajones', 'Jessica Jones', '$2b$10$UzQHth.9UUQ1T5aiQJ21lOU0oVlbxoqH4PFM9V8T90KNSAcg0eEL2', 1, 1, 'JessicaJones@mydomain.com', 'en','1110'), + (1111, 'missing', 'Missing', '$2b$10$UzQHth.9UUQ1T5aiQJ21lOU0oVlbxoqH4PFM9V8T90KNSAcg0eEL2', 2, 0, NULL, 'en','e7723f0b24ff05b32ed09d95196f2f29'), + (1112, 'trash', 'Trash', '$2b$10$UzQHth.9UUQ1T5aiQJ21lOU0oVlbxoqH4PFM9V8T90KNSAcg0eEL2', 2, 0, NULL, 'en','e7723f0b24ff05b32ed09d95196f2f29'); UPDATE account.`user` - SET passExpired = DATE_SUB(util.VN_CURDATE(), INTERVAL 1 YEAR) - WHERE name = 'maintenance'; + SET passExpired = DATE_SUB(util.VN_CURDATE(), INTERVAL 1 YEAR) + WHERE name = 'maintenance'; INSERT INTO `account`.`mailAlias`(`id`, `alias`, `description`, `isPublic`) - VALUES - (1, 'general', 'General mailing list', FALSE), - (2, 'it' , 'IT department' , TRUE), - (3, 'sales' , 'Sales department' , TRUE); + VALUES + (1, 'general', 'General mailing list', FALSE), + (2, 'it' , 'IT department' , TRUE), + (3, 'sales' , 'Sales department' , TRUE); INSERT INTO `account`.`mailAliasAccount`(`mailAlias`, `account`) - VALUES - (1, 1), - (1, 18), - (3, 18), - (1, 9), - (2, 9); + VALUES + (1, 1), + (1, 18), + (3, 18), + (1, 9), + (2, 9); INSERT INTO `account`.`mailForward`(`account`, `forwardTo`) - VALUES - (1, 'employee@domain.local'); + VALUES + (1, 'employee@domain.local'); INSERT INTO `vn`.`currency`(`id`, `code`, `name`, `ratio`) - VALUES - (1, 'EUR', 'Euro', 1), - (2, 'USD', 'Dollar USA', 1.4), - (3, 'GBP', 'Libra', 1), - (4, 'JPY', 'Yen Japones', 1), - (5, 'CNY', 'Yuan Chino', 1.2); + VALUES + (1, 'EUR', 'Euro', 1), + (2, 'USD', 'Dollar USA', 1.4), + (3, 'GBP', 'Libra', 1), + (4, 'JPY', 'Yen Japones', 1), + (5, 'CNY', 'Yuan Chino', 1.2); INSERT INTO `vn`.`country`(`id`, `name`, `isUeeMember`, `code`, `currencyFk`, `ibanLength`, `continentFk`, `hasDailyInvoice`, `CEE`) - VALUES - (1, 'España', 1, 'ES', 1, 24, 4, 0, 1), - (2, 'Italia', 1, 'IT', 1, 27, 4, 0, 1), - (3, 'Alemania', 1, 'DE', 1, 22, 4, 0, 1), - (4, 'Rumania', 1, 'RO', 1, 24, 4, 0, 1), - (5, 'Holanda', 1, 'NL', 1, 18, 4, 0, 1), - (8, 'Portugal', 1, 'PT', 1, 27, 4, 0, 1), - (13,'Ecuador', 0, 'EC', 1, 24, 2, 1, 2), - (19,'Francia', 1, 'FR', 1, 27, 4, 0, 1), - (30,'Canarias', 1, 'IC', 1, 24, 4, 1, 2); + VALUES + (1, 'España', 1, 'ES', 1, 24, 4, 0, 1), + (2, 'Italia', 1, 'IT', 1, 27, 4, 0, 1), + (3, 'Alemania', 1, 'DE', 1, 22, 4, 0, 1), + (4, 'Rumania', 1, 'RO', 1, 24, 4, 0, 1), + (5, 'Holanda', 1, 'NL', 1, 18, 4, 0, 1), + (8, 'Portugal', 1, 'PT', 1, 27, 4, 0, 1), + (13,'Ecuador', 0, 'EC', 1, 24, 2, 1, 2), + (19,'Francia', 1, 'FR', 1, 27, 4, 0, 1), + (30,'Canarias', 1, 'IC', 1, 24, 4, 1, 2); INSERT INTO `vn`.`warehouse`(`id`, `name`, `code`, `isComparative`, `isInventory`, `hasAvailable`, `isManaged`, `hasDms`, `hasComission`, `countryFk`, `hasProduction`, `isOrigin`, `isDestiny`) - VALUES - (1, 'Warehouse One', 'ALG', 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), - (2, 'Warehouse Two', NULL, 1, 1, 1, 1, 0, 1, 13, 1, 1, 0), - (3, 'Warehouse Three', NULL, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0), - (4, 'Warehouse Four', NULL, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1), - (5, 'Warehouse Five', NULL, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0), - (6, 'Warehouse six', 'vnh', 1, 1, 1, 1, 0, 0, 1, 1, 0, 0), - (13, 'Inventory', 'inv', 1, 1, 1, 0, 0, 0, 1, 0, 0, 0), - (60, 'Algemesi', NULL, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0); + VALUES + (1, 'Warehouse One', 'ALG', 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), + (2, 'Warehouse Two', NULL, 1, 1, 1, 1, 0, 1, 13, 1, 1, 0), + (3, 'Warehouse Three', NULL, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0), + (4, 'Warehouse Four', NULL, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1), + (5, 'Warehouse Five', NULL, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0), + (6, 'Warehouse six', 'vnh', 1, 1, 1, 1, 0, 0, 1, 1, 0, 0), + (13, 'Inventory', 'inv', 1, 1, 1, 0, 0, 0, 1, 0, 0, 0), + (60, 'Algemesi', NULL, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0); INSERT INTO `vn`.`sectorType` (`id`, `code`) VALUES (1,'normal'); INSERT INTO `vn`.`sector`(`id`, `description`, `warehouseFk`, `code`, `typeFk`) - VALUES - (1, 'First sector', 1, 'FIRST', 1), - (2, 'Second sector', 2, 'SECOND',1); + VALUES + (1, 'First sector', 1, 'FIRST', 1), + (2, 'Second sector', 2, 'SECOND',1); INSERT INTO `vn`.`printer` (`id`, `name`, `path`, `isLabeler`, `sectorFk`, `ipAddress`) - VALUES - (1, 'printer1', 'path1', 0, 1 , NULL), - (2, 'printer2', 'path2', 1, 1 , NULL), - (4, 'printer4', 'path4', 0, NULL, '10.1.10.4'); + VALUES + (1, 'printer1', 'path1', 0, 1 , NULL), + (2, 'printer2', 'path2', 1, 1 , NULL), + (4, 'printer4', 'path4', 0, NULL, '10.1.10.4'); UPDATE `vn`.`sector` SET `backupPrinterFk` = 1 WHERE id = 1; INSERT INTO `vn`.`worker`(`id`, `code`, `firstName`, `lastName`,`bossFk`, `phone`) - VALUES - (1106, 'LGN', 'David Charles', 'Haller', 19, 432978106), - (1107, 'ANT', 'Hank' , 'Pym' , 19, 432978107), - (1108, 'DCX', 'Charles' , 'Xavier', 19, 432978108), - (1109, 'HLK', 'Bruce' , 'Banner', 19, 432978109), - (1110, 'JJJ', 'Jessica' , 'Jones' , 19, 432978110); + VALUES + (1106, 'LGN', 'David Charles', 'Haller', 19, 432978106), + (1107, 'ANT', 'Hank' , 'Pym' , 19, 432978107), + (1108, 'DCX', 'Charles' , 'Xavier', 19, 432978108), + (1109, 'HLK', 'Bruce' , 'Banner', 19, 432978109), + (1110, 'JJJ', 'Jessica' , 'Jones' , 19, 432978110); -INSERT INTO `vn`.`parking` (`id`, `column`, `row`, `sectorFk`, `code`, `pickingOrder`) - VALUES - ('1', 700, '01', 1, '700-01', 70001), - ('2', 700, '02', 2, '700-02', 70002), - ('3', 100, '01', 1, '100-01', 1), - (32397, 100, '02', 1, 'A-47-1', 1165), - (34831, 200, '01', 1, 'K-26-2', 20220), - (34965, 200, '02', 2, 'L-08-4', 21800), - (39096, 200, '03', 2, 'LR-02-3', 99999); +INSERT INTO `vn`.`parking` (`id`, `sectorFk`, `code`, `pickingOrder`) + VALUES + ('1', 1, '700-01', 70001), + ('2', 2, '700-02', 70002), + ('3', 1, '100-01', 1), + (32397, 1, 'A-47-1', 1165), + (34831, 1, 'K-26-2', 20220), + (34965, 2, 'L-08-4', 21800), + (39096, 2, 'LR-02-3', 99999); INSERT INTO `vn`.`shelving` (`code`, `parkingFk`, `isPrinted`, `priority`, `userFk`, `isRecyclable`) - VALUES - ('AA6', 34965, 1, 0, NULL, 0), - ('AA7', 34965, 1, 0, NULL, 0), - ('AA8', 34965, 1, 0, NULL, 0), - ('AA9', NULL, 1, 0, NULL, 0), - ('AAA', NULL, 0, 0, 1109, 1), - ('AAB', NULL, 0, 0, 1109, 1), - ('AAC', NULL, 1, 99, 1109, 1), - ('AAD', NULL, 0, 0, 1109, 1), - ('AAE', 39096, 1, 0, 1109, 1), - ('AAF', 34831, 1, 0, 1109, 1), - ('GVC', 1, 0, 1, 1106, 1), - ('HEJ', 2, 0, 1, 1106, 1), - ('UXN', 1, 0, 1, 1106, 1); + VALUES + ('AA6', 34965, 1, 0, NULL, 0), + ('AA7', 34965, 1, 0, NULL, 0), + ('AA8', 34965, 1, 0, NULL, 0), + ('AA9', NULL, 1, 0, NULL, 0), + ('AAA', NULL, 0, 0, 1109, 1), + ('AAB', NULL, 0, 0, 1109, 1), + ('AAC', NULL, 1, 99, 1109, 1), + ('AAD', NULL, 0, 0, 1109, 1), + ('AAE', 39096, 1, 0, 1109, 1), + ('AAF', 34831, 1, 0, 1109, 1), + ('GVC', 1, 0, 1, 1106, 1), + ('HEJ', 2, 0, 1, 1106, 1), + ('UXN', 1, 0, 1, 1106, 1); INSERT INTO `vn`.`accountingType`(`id`, `description`, `receiptDescription`,`code`, `maxAmount`, `daysInFuture`) - VALUES - (1, 'CC and credit policies', 'Transfers', 'wireTransfer', NULL, 1), - (2, 'Cash', 'Cash', 'cash', 1000, 0), - (3, 'Credit card', 'Credit Card', 'creditCard', NULL, 0), - (4, 'Finalcial lines', NULL, NULL, NULL, 0), - (5, 'Other products', NULL, NULL, NULL, 0), - (6, 'Loans', NULL, NULL, NULL, 0), - (7, 'Leasing', NULL, NULL, NULL, 0), - (8, 'Compensations', 'Compensations', 'compensation', NULL, 0); + VALUES + (1, 'CC and credit policies', 'Transfers', 'wireTransfer', NULL, 1), + (2, 'Cash', 'Cash', 'cash', 1000, 0), + (3, 'Credit card', 'Credit Card', 'creditCard', NULL, 0), + (4, 'Finalcial lines', NULL, NULL, NULL, 0), + (5, 'Other products', NULL, NULL, NULL, 0), + (6, 'Loans', NULL, NULL, NULL, 0), + (7, 'Leasing', NULL, NULL, NULL, 0), + (8, 'Compensations', 'Compensations', 'compensation', NULL, 0); INSERT INTO `vn`.`bankEntity`(`id`, `countryFk`, `name`, `bic`) - VALUES - (128, 1, 'The Best Bank', 'BBKKESMMMMMM'), - (2100, 1, 'Caixa Bank', 'CAIXESBB'); + VALUES + (128, 1, 'The Best Bank', 'BBKKESMMMMMM'), + (2100, 1, 'Caixa Bank', 'CAIXESBB'); INSERT INTO `vn`.`accounting`(`id`, `bank`, `account`, `accountingTypeFk`, `entityFk`, `isActive`, `currencyFk`, `code`) - VALUES - (1, 'Pay on receipt', '5720000001', 3, 128, 1, 1, 'payOnReceipt'), - (2, 'Cash', '5700000001', 2, 128, 1, 1, 'cash'), - (3, 'Compensation', '4000000000', 8, 128, 1, 1, 'compensation'), - (4, 'Transfers', '4000000001', 1, 128, 1, 1, 'transfers'), - (3117, 'Caixa Rural d''Algemesi', '5720000000', 8, 2100, 1, 1, 'cra'); + VALUES + (1, 'Pay on receipt', '5720000001', 3, 128, 1, 1, 'payOnReceipt'), + (2, 'Cash', '5700000001', 2, 128, 1, 1, 'cash'), + (3, 'Compensation', '4000000000', 8, 128, 1, 1, 'compensation'), + (4, 'Transfers', '4000000001', 1, 128, 1, 1, 'transfers'), + (3117, 'Caixa Rural d''Algemesi', '5720000000', 8, 2100, 1, 1, 'cra'); INSERT INTO `vn`.`deliveryMethod`(`id`, `code`, `description`) - VALUES - (1, 'AGENCY', 'Agencia'), - (2, 'DELIVERY', 'Reparto'), - (3, 'PICKUP', 'Recogida'), - (4, 'OTHER', 'Otros'); + VALUES + (1, 'AGENCY', 'Agencia'), + (2, 'DELIVERY', 'Reparto'), + (3, 'PICKUP', 'Recogida'), + (4, 'OTHER', 'Otros'); INSERT INTO `vn`.`agency`(`id`, `name`, `warehouseFk`) - VALUES - (1, 'inhouse pickup' , 1), - (2, 'Super-Man delivery' , 1), - (3, 'Teleportation device' , 1), - (4, 'Entanglement' , 1), - (5, 'Quantum break device' , 1), - (6, 'Walking' , 1), - (7, 'Gotham247' , 1), - (8, 'Gotham247Expensive' , 1), - (9, 'Refund' , 1), - (10, 'Other agency' , 1); + VALUES + (1, 'inhouse pickup' , 1), + (2, 'Super-Man delivery' , 1), + (3, 'Teleportation device' , 1), + (4, 'Entanglement' , 1), + (5, 'Quantum break device' , 1), + (6, 'Walking' , 1), + (7, 'Gotham247' , 1), + (8, 'Gotham247Expensive' , 1), + (9, 'Refund' , 1), + (10, 'Other agency' , 1); UPDATE `vn`.`agencyMode` SET `id` = 1 WHERE `name` = 'inhouse pickup'; UPDATE `vn`.`agencyMode` SET `id` = 2 WHERE `name` = 'Super-Man delivery'; @@ -322,159 +322,159 @@ UPDATE `vn`.`agencyMode` SET `web` = 1, `reportMail` = 'no-reply@gothamcity.com' UPDATE `vn`.`agencyMode` SET `code` = 'refund' WHERE `id` = 23; INSERT INTO `vn`.`payMethod`(`id`,`code`, `name`, `graceDays`, `outstandingDebt`, `isIbanRequiredForClients`, `isIbanRequiredForSuppliers`, `hasVerified`) - VALUES - (1, NULL, 'PayMethod one', 0, 001, 0, 0, 0), - (2, NULL, 'PayMethod two', 10, 001, 0, 0, 1), - (3, 'compensation', 'PayMethod three', 0, 001, 0, 0, 0), - (4, NULL, 'PayMethod with IBAN', 0, 001, 1, 0, 0), - (5, NULL, 'PayMethod five', 10, 001, 0, 0, 0), - (8,'wireTransfer', 'WireTransfer', 5, 001, 1, 1, 0); + VALUES + (1, NULL, 'PayMethod one', 0, 001, 0, 0, 0), + (2, NULL, 'PayMethod two', 10, 001, 0, 0, 1), + (3, 'compensation', 'PayMethod three', 0, 001, 0, 0, 0), + (4, NULL, 'PayMethod with IBAN', 0, 001, 1, 0, 0), + (5, NULL, 'PayMethod five', 10, 001, 0, 0, 0), + (8,'wireTransfer', 'WireTransfer', 5, 001, 1, 1, 0); INSERT INTO `vn`.`payDem`(`id`, `payDem`) - VALUES - (1, 10), - (2, 20), - (7, 0); + VALUES + (1, 10), + (2, 20), + (7, 0); INSERT INTO `vn`.`autonomy`(`id`, `name`, `countryFk`, `hasDailyInvoice`) - VALUES - (1, 'Autonomy one', 1, 1), - (2, 'Autonomy two', 1, 0), - (3, 'Autonomy three', 2, 0), - (4, 'Autonomy four', 13, 0); + VALUES + (1, 'Autonomy one', 1, 1), + (2, 'Autonomy two', 1, 0), + (3, 'Autonomy three', 2, 0), + (4, 'Autonomy four', 13, 0); INSERT INTO `vn`.`province`(`id`, `name`, `countryFk`, `autonomyFk`, `warehouseFk`) - VALUES - (1, 'Province one', 1, 1, NULL), - (2, 'Province two', 1, 1, NULL), - (3, 'Province three', 30, 2, NULL), - (4, 'Province four', 2, 3, NULL), - (5, 'Province five', 13, 4, NULL); + VALUES + (1, 'Province one', 1, 1, NULL), + (2, 'Province two', 1, 1, NULL), + (3, 'Province three', 30, 2, NULL), + (4, 'Province four', 2, 3, NULL), + (5, 'Province five', 13, 4, NULL); INSERT INTO `vn`.`town`(`id`, `name`, `provinceFk`) - VALUES - (1, 'Valencia', 1), - (2, 'Gotham', 1), - (3, 'Algemesi', 1), - (4, 'Alzira', 1), - (5, 'Quito', 5); + VALUES + (1, 'Valencia', 1), + (2, 'Gotham', 1), + (3, 'Algemesi', 1), + (4, 'Alzira', 1), + (5, 'Quito', 5); INSERT INTO `vn`.`postCode`(`code`, `townFk`, `geoFk`) - VALUES - ('46000', 1, 6), - ('46460', 2, 6), - ('46680', 3, 6), - ('46600', 4, 7), - ('46600',1, 6), - ('EC170150', 5, 8); + VALUES + ('46000', 1, 6), + ('46460', 2, 6), + ('46680', 3, 6), + ('46600', 4, 7), + ('46600',1, 6), + ('EC170150', 5, 8); INSERT INTO `vn`.`clientType`(`code`, `type`) - VALUES - ('normal', 'Normal'), - ('internalUse', 'Autoconsumo'), - ('handMaking', 'Confección'), - ('loses', 'Mermas'); + VALUES + ('normal', 'Normal'), + ('internalUse', 'Autoconsumo'), + ('handMaking', 'Confección'), + ('loses', 'Mermas'); INSERT INTO `vn`.`cplusTerIdNif`(`id`, `description`) - VALUES - (1, 'NIF'); + VALUES + (1, 'NIF'); INSERT INTO `vn`.`contactChannel`(`id`, `name`) - VALUES - (1, 'Rumors on the streets'), - (2, 'Metropolis newspaper'), - (3, 'Daily Bugle'), - (4, 'GCN Channel'), - (5, 'The Newspaper'); + VALUES + (1, 'Rumors on the streets'), + (2, 'Metropolis newspaper'), + (3, 'Daily Bugle'), + (4, 'GCN Channel'), + (5, 'The Newspaper'); INSERT INTO `vn`.`client`(`id`,`name`,`fi`,`socialName`,`contact`,`street`,`city`,`postcode`,`phone`,`mobile`,`isRelevant`,`email`,`iban`,`dueDay`,`accountingAccount`,`isEqualizated`,`provinceFk`,`hasToInvoice`,`credit`,`countryFk`,`isActive`,`quality`,`payMethodFk`,`created`,`isToBeMailed`,`contactChannelFk`,`hasSepaVnl`,`hasCoreVnl`,`hasCoreVnh`,`riskCalculated`, `hasToInvoiceByAddress`,`isTaxDataChecked`,`isFreezed`,`creditInsurance`,`isCreatedAsServed`,`hasInvoiceSimplified`,`salesPersonFk`,`isVies`,`businessTypeFk`,`typeFk`) - VALUES - (1101, 'Bruce Wayne', '84612325V', 'BATMAN', 'Alfred', '1007 MOUNTAIN DRIVE, GOTHAM', 'Gotham', 46460, 1111111111, 222222222, 1, 'BruceWayne@mydomain.com', NULL, 0, 1234567890, 0, 1, 1, 300, 1, 1, 10, 5, util.VN_CURDATE(), 1, 5, 1, 1, 1, '0000-00-00', 1, 1, 0, NULL, 0, 0, 18, 0, 'florist','normal'), - (1102, 'Petter Parker', '87945234L', 'SPIDER MAN', 'Aunt May', '20 INGRAM STREET, QUEENS, USA', 'Gotham', 46460, 1111111111, 222222222, 1, 'PetterParker@mydomain.com', NULL, 0, 1234567890, 0, 2, 1, 300, 1, 1, 10, 5, util.VN_CURDATE(), 1, 5, 1, 1, 1, '0000-00-00', 1, 1, 0, NULL, 0, 0, 18, 0, 'florist','normal'), - (1103, 'Clark Kent', '06815934E', 'SUPER MAN', 'lois lane', '344 CLINTON STREET, APARTAMENT 3-D', 'Gotham', 46460, 1111111111, 222222222, 1, 'ClarkKent@mydomain.com', NULL, 0, 1234567890, 0, 3, 1, 0, 19, 1, 10, 5, util.VN_CURDATE(), 1, 5, 1, 1, 1, '0000-00-00', 1, 1, 0, NULL, 0, 0, 18, 0, 'florist','normal'), - (1104, 'Tony Stark', '06089160W', 'IRON MAN', 'Pepper Potts', '10880 MALIBU POINT, 90265', 'Gotham', 46460, 1111111111, 222222222, 1, 'TonyStark@mydomain.com', NULL, 0, 1234567890, 0, 2, 1, 300, 1, 1, 10, 5, util.VN_CURDATE(), 1, 5, 1, 1, 1, '0000-00-00', 1, 1, 0, NULL, 0, 0, 18, 0, 'florist','normal'), - (1105, 'Max Eisenhardt', '251628698', 'MAGNETO', 'Rogue', 'UNKNOWN WHEREABOUTS', 'Gotham', 46460, 1111111111, 222222222, 1, 'MaxEisenhardt@mydomain.com', NULL, 0, 1234567890, 0, 3, 1, 300, 8, 1, 10, 5, util.VN_CURDATE(), 1, 5, 1, 1, 1, '0000-00-00', 1, 1, 1, NULL, 0, 0, 18, 0, 'florist','normal'), - (1106, 'DavidCharlesHaller', '53136686Q', 'LEGION', 'Charles Xavier', 'CITY OF NEW YORK, NEW YORK, USA', 'Gotham', 46460, 1111111111, 222222222, 1, 'DavidCharlesHaller@mydomain.com', NULL, 0, 1234567890, 0, 1, 1, 300, 1, 0, 10, 5, util.VN_CURDATE(), 1, 5, 1, 1, 1, '0000-00-00', 1, 1, 0, NULL, 0, 0, 19, 0, 'florist','normal'), - (1107, 'Hank Pym', '09854837G', 'ANT MAN', 'Hawk', 'ANTHILL, SAN FRANCISCO, CALIFORNIA', 'Gotham', 46460, 1111111111, 222222222, 1, 'HankPym@mydomain.com', NULL, 0, 1234567890, 0, 1, 1, 300, 1, 1, 10, 5, util.VN_CURDATE(), 1, 5, 1, 1, 1, '0000-00-00', 1, 0, 0, NULL, 0, 0, 19, 0, 'florist','normal'), - (1108, 'Charles Xavier', '22641921P', 'PROFESSOR X', 'Beast', '3800 VICTORY PKWY, CINCINNATI, OH 45207, USA', 'Gotham', 46460, 1111111111, 222222222, 1, 'CharlesXavier@mydomain.com', NULL, 0, 1234567890, 0, 5, 1, 300, 13, 1, 10, 5, util.VN_CURDATE(), 1, 5, 1, 1, 1, '0000-00-00', 1, 1, 1, NULL, 0, 0, 19, 0, 'florist','normal'), - (1109, 'Bruce Banner', '16104829E', 'HULK', 'Black widow', 'SOMEWHERE IN NEW YORK', 'Gotham', 46460, 1111111111, 222222222, 1, 'BruceBanner@mydomain.com', NULL, 0, 1234567890, 0, 1, 1, 300, 1, 1, 10, 5, util.VN_CURDATE(), 1, 5, 1, 1, 1, '0000-00-00', 1, 0, 0, NULL, 0, 0, 9, 0, 'florist','normal'), - (1110, 'Jessica Jones', '58282869H', 'JESSICA JONES', 'Luke Cage', 'NYCC 2015 POSTER', 'Gotham', 46460, 1111111111, 222222222, 1, 'JessicaJones@mydomain.com', NULL, 0, 1234567890, 0, 1, 1, 300, 1, 1, 10, 5, util.VN_CURDATE(), 1, 5, 1, 1, 1, '0000-00-00', 1, 1, 0, NULL, 0, 0, NULL, 1, 'florist','normal'), - (1111, 'Missing', NULL, 'MISSING MAN', 'Anton', 'THE SPACE, UNIVERSE FAR AWAY', 'Gotham', 46460, 1111111111, 222222222, 0, NULL, NULL, 0, 1234567890, 0, 1, 1, 300, 1, 1, 10, 5, util.VN_CURDATE(), 1, 5, 1, 1, 1, '0000-00-00', 0, 1, 0, NULL, 1, 0, NULL, 0, 'others','loses'), - (1112, 'Trash', NULL, 'GARBAGE MAN', 'Unknown name', 'NEW YORK CITY, UNDERGROUND', 'Gotham', 46460, 1111111111, 222222222, 0, NULL, NULL, 0, 1234567890, 0, 1, 1, 300, 1, 1, 10, 5, util.VN_CURDATE(), 1, 5, 1, 1, 1, '0000-00-00', 0, 1, 0, NULL, 1, 0, NULL, 0, 'others','loses'); + VALUES + (1101, 'Bruce Wayne', '84612325V', 'BATMAN', 'Alfred', '1007 MOUNTAIN DRIVE, GOTHAM', 'Gotham', 46460, 1111111111, 222222222, 1, 'BruceWayne@mydomain.com', NULL, 0, 1234567890, 0, 1, 1, 300, 1, 1, 10, 5, util.VN_CURDATE(), 1, 5, 1, 1, 1, '0000-00-00', 1, 1, 0, NULL, 0, 0, 18, 0, 'florist','normal'), + (1102, 'Petter Parker', '87945234L', 'SPIDER MAN', 'Aunt May', '20 INGRAM STREET, QUEENS, USA', 'Gotham', 46460, 1111111111, 222222222, 1, 'PetterParker@mydomain.com', NULL, 0, 1234567890, 0, 2, 1, 300, 1, 1, 10, 5, util.VN_CURDATE(), 1, 5, 1, 1, 1, '0000-00-00', 1, 1, 0, NULL, 0, 0, 18, 0, 'florist','normal'), + (1103, 'Clark Kent', '06815934E', 'SUPER MAN', 'lois lane', '344 CLINTON STREET, APARTAMENT 3-D', 'Gotham', 46460, 1111111111, 222222222, 1, 'ClarkKent@mydomain.com', NULL, 0, 1234567890, 0, 3, 1, 0, 19, 1, 10, 5, util.VN_CURDATE(), 1, 5, 1, 1, 1, '0000-00-00', 1, 1, 0, NULL, 0, 0, 18, 0, 'florist','normal'), + (1104, 'Tony Stark', '06089160W', 'IRON MAN', 'Pepper Potts', '10880 MALIBU POINT, 90265', 'Gotham', 46460, 1111111111, 222222222, 1, 'TonyStark@mydomain.com', NULL, 0, 1234567890, 0, 2, 1, 300, 1, 1, 10, 5, util.VN_CURDATE(), 1, 5, 1, 1, 1, '0000-00-00', 1, 1, 0, NULL, 0, 0, 18, 0, 'florist','normal'), + (1105, 'Max Eisenhardt', '251628698', 'MAGNETO', 'Rogue', 'UNKNOWN WHEREABOUTS', 'Gotham', 46460, 1111111111, 222222222, 1, 'MaxEisenhardt@mydomain.com', NULL, 0, 1234567890, 0, 3, 1, 300, 8, 1, 10, 5, util.VN_CURDATE(), 1, 5, 1, 1, 1, '0000-00-00', 1, 1, 1, NULL, 0, 0, 18, 0, 'florist','normal'), + (1106, 'DavidCharlesHaller', '53136686Q', 'LEGION', 'Charles Xavier', 'CITY OF NEW YORK, NEW YORK, USA', 'Gotham', 46460, 1111111111, 222222222, 1, 'DavidCharlesHaller@mydomain.com', NULL, 0, 1234567890, 0, 1, 1, 300, 1, 0, 10, 5, util.VN_CURDATE(), 1, 5, 1, 1, 1, '0000-00-00', 1, 1, 0, NULL, 0, 0, 19, 0, 'florist','normal'), + (1107, 'Hank Pym', '09854837G', 'ANT MAN', 'Hawk', 'ANTHILL, SAN FRANCISCO, CALIFORNIA', 'Gotham', 46460, 1111111111, 222222222, 1, 'HankPym@mydomain.com', NULL, 0, 1234567890, 0, 1, 1, 300, 1, 1, 10, 5, util.VN_CURDATE(), 1, 5, 1, 1, 1, '0000-00-00', 1, 0, 0, NULL, 0, 0, 19, 0, 'florist','normal'), + (1108, 'Charles Xavier', '22641921P', 'PROFESSOR X', 'Beast', '3800 VICTORY PKWY, CINCINNATI, OH 45207, USA', 'Gotham', 46460, 1111111111, 222222222, 1, 'CharlesXavier@mydomain.com', NULL, 0, 1234567890, 0, 5, 1, 300, 13, 1, 10, 5, util.VN_CURDATE(), 1, 5, 1, 1, 1, '0000-00-00', 1, 1, 1, NULL, 0, 0, 19, 0, 'florist','normal'), + (1109, 'Bruce Banner', '16104829E', 'HULK', 'Black widow', 'SOMEWHERE IN NEW YORK', 'Gotham', 46460, 1111111111, 222222222, 1, 'BruceBanner@mydomain.com', NULL, 0, 1234567890, 0, 1, 1, 300, 1, 1, 10, 5, util.VN_CURDATE(), 1, 5, 1, 1, 1, '0000-00-00', 1, 0, 0, NULL, 0, 0, 9, 0, 'florist','normal'), + (1110, 'Jessica Jones', '58282869H', 'JESSICA JONES', 'Luke Cage', 'NYCC 2015 POSTER', 'Gotham', 46460, 1111111111, 222222222, 1, 'JessicaJones@mydomain.com', NULL, 0, 1234567890, 0, 1, 1, 300, 1, 1, 10, 5, util.VN_CURDATE(), 1, 5, 1, 1, 1, '0000-00-00', 1, 1, 0, NULL, 0, 0, NULL, 1, 'florist','normal'), + (1111, 'Missing', NULL, 'MISSING MAN', 'Anton', 'THE SPACE, UNIVERSE FAR AWAY', 'Gotham', 46460, 1111111111, 222222222, 0, NULL, NULL, 0, 1234567890, 0, 1, 1, 300, 1, 1, 10, 5, util.VN_CURDATE(), 1, 5, 1, 1, 1, '0000-00-00', 0, 1, 0, NULL, 1, 0, NULL, 0, 'others','loses'), + (1112, 'Trash', NULL, 'GARBAGE MAN', 'Unknown name', 'NEW YORK CITY, UNDERGROUND', 'Gotham', 46460, 1111111111, 222222222, 0, NULL, NULL, 0, 1234567890, 0, 1, 1, 300, 1, 1, 10, 5, util.VN_CURDATE(), 1, 5, 1, 1, 1, '0000-00-00', 0, 1, 0, NULL, 1, 0, NULL, 0, 'others','loses'); INSERT INTO `vn`.`client`(`id`, `name`, `fi`, `socialName`, `contact`, `street`, `city`, `postcode`, `isRelevant`, `email`, `iban`,`dueDay`,`accountingAccount`, `isEqualizated`, `provinceFk`, `hasToInvoice`, `credit`, `countryFk`, `isActive`, `quality`, `payMethodFk`,`created`, `isTaxDataChecked`) - SELECT id, name, CONCAT(RPAD(CONCAT(id,9),8,id),'A'), UPPER(CONCAT(name, 'Social')), CONCAT(name, 'Contact'), UPPER(CONCAT(name, 'Street')), 'GOTHAM', 46460, 0, CONCAT(name,'@mydomain.com'), NULL, 0, 1234567890, 0, 1, 1, 300, 1, 1, 10, 5, util.VN_CURDATE(), 1 - FROM `account`.`role` `r` - WHERE `r`.`hasLogin` = 1; + SELECT id, name, CONCAT(RPAD(CONCAT(id,9),8,id),'A'), UPPER(CONCAT(name, 'Social')), CONCAT(name, 'Contact'), UPPER(CONCAT(name, 'Street')), 'GOTHAM', 46460, 0, CONCAT(name,'@mydomain.com'), NULL, 0, 1234567890, 0, 1, 1, 300, 1, 1, 10, 5, util.VN_CURDATE(), 1 + FROM `account`.`role` `r` + WHERE `r`.`hasLogin` = 1; INSERT INTO `vn`.`clientManaCache`(`clientFk`, `mana`, `dated`) - VALUES - (1101, 50, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH)), - (1102, 100, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH)), - (1103, 0, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH)), - (1104, -30, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH)); + VALUES + (1101, 50, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH)), + (1102, 100, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH)), + (1103, 0, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH)), + (1104, -30, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH)); INSERT INTO `vn`.`mandateType`(`id`, `code`) - VALUES - (1, 'B2B'), - (2, 'CORE'), - (3, 'LCR'); + VALUES + (1, 'B2B'), + (2, 'CORE'), + (3, 'LCR'); INSERT INTO `vn`.`clientConfig`(`id`, `riskTolerance`, `maxCreditRows`, `maxPriceIncreasingRatio`, `riskScope`, `defaultPayMethodFk`, `defaultDueDay`, `defaultCredit`, `defaultIsTaxDataChecked`, `defaultHasCoreVnl`, `defaultMandateTypeFk`) - VALUES - (1, 200, 10, 0.25, 2, 4, 5, 300.00, 1, 1, 2); + VALUES + (1, 200, 10, 0.25, 2, 4, 5, 300.00, 1, 1, 2); INSERT INTO `vn`.`address`(`id`, `nickname`, `street`, `city`, `postalCode`, `provinceFk`, `phone`, `mobile`, `isActive`, `clientFk`, `agencyModeFk`, `longitude`, `latitude`, `isEqualizated`, `isDefaultAddress`) - VALUES - (1, 'Bruce Wayne', '1007 Mountain Drive, Gotham', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1101, 2, -74.1111111, 10.1111111, 0, 1), - (2, 'Petter Parker', '20 Ingram Street', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1102, 2, -74.2222222, 10.2222222, 0, 1), - (3, 'Clark Kent', '344 Clinton Street', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1103, 2, -74.3333333, 10.3333333, 0, 1), - (4, 'Tony Stark', '10880 Malibu Point', 'Gotham', 46460, 1, 1111111111, 222222222, 1 , 1104, 2, -74.4444444, 10.4444444, 0, 1), - (5, 'Max Eisenhardt', 'Unknown Whereabouts', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1105, 2, NULL, NULL, 0, 1), - (6, 'DavidCharlesHaller', 'Evil hideout', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1106, 2, NULL, NULL, 0, 1), - (7, 'Hank Pym', 'Anthill', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1107, 2, NULL, NULL, 0, 1), - (8, 'Charles Xavier', '3800 Victory Pkwy, Cincinnati, OH 45207, USA', 'Gotham', 46460, 5, 1111111111, 222222222, 1, 1108, 2, NULL, NULL, 0, 1), - (9, 'Bruce Banner', 'Somewhere in New York', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1109, 2, NULL, NULL, 0, 1), - (10, 'Jessica Jones', 'NYCC 2015 Poster', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1110, 2, NULL, NULL, 0, 1), - (11, 'Missing', 'The space', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1111, 10, NULL, NULL, 0, 1), - (12, 'Trash', 'New York city', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1112, 10, NULL, NULL, 0, 1), - (101, 'Somewhere in Thailand', 'address 01', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1109, 2, NULL, NULL, 0, 0), - (102, 'Somewhere in Poland', 'address 02', 'Gotham', 46460, 1, 3333333333, 444444444, 1, 1109, 2, NULL, NULL, 0, 0), - (103, 'Somewhere in Japan', 'address 03', 'Gotham', 46460, 1, 3333333333, 444444444, 1, 1109, 2, NULL, NULL, 0, 0), - (104, 'Somewhere in Spain', 'address 04', 'Gotham', 46460, 1, 3333333333, 444444444, 1, 1109, 2, NULL, NULL, 0, 0), - (105, 'Somewhere in Potugal', 'address 05', 'Gotham', 46460, 1, 5555555555, 666666666, 1, 1109, 2, NULL, NULL, 0, 0), - (106, 'Somewhere in UK', 'address 06', 'Gotham', 46460, 1, 5555555555, 666666666, 1, 1109, 2, NULL, NULL, 0, 0), - (107, 'Somewhere in Valencia', 'address 07', 'Gotham', 46460, 1, 5555555555, 666666666, 1, 1109, 2, NULL, NULL, 0, 0), - (108, 'Somewhere in Gotham', 'address 08', 'Gotham', 46460, 1, 5555555555, 666666666, 1, 1109, 2, NULL, NULL, 0, 0), - (109, 'Somewhere in London', 'address 09', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1109, 2, NULL, NULL, 0, 0), - (110, 'Somewhere in Algemesi', 'address 10', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1109, 2, NULL, NULL, 0, 0), - (111, 'Somewhere in Carlet', 'address 11', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1109, 2, NULL, NULL, 0, 0), - (112, 'Somewhere in Campanar', 'address 12', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1109, 2, NULL, NULL, 0, 0), - (113, 'Somewhere in Malilla', 'address 13', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1109, 2, NULL, NULL, 0, 0), - (114, 'Somewhere in France', 'address 14', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1109, 2, NULL, NULL, 0, 0), - (115, 'Somewhere in Birmingham', 'address 15', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1109, 2, NULL, NULL, 0, 0), - (116, 'Somewhere in Scotland', 'address 16', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1109, 2, NULL, NULL, 0, 0), - (117, 'Somewhere in nowhere', 'address 17', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1109, 2, NULL, NULL, 0, 0), - (118, 'Somewhere over the rainbow', 'address 18', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1109, 2, NULL, NULL, 0, 0), - (119, 'Somewhere in Alberic', 'address 19', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1109, 2, NULL, NULL, 0, 0), - (120, 'Somewhere in Montortal', 'address 20', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1109, 2, NULL, NULL, 0, 0), - (121, 'the bat cave', 'address 21', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1101, 2, NULL, NULL, 0, 0), - (122, 'NY roofs', 'address 22', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1102, 2, NULL, NULL, 0, 0), - (123, 'The phone box', 'address 23', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1103, 2, -74.555555, 10.555555, 0, 0), - (124, 'Stark tower Gotham', 'address 24', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1104, 2, NULL, NULL, 0, 0), - (125, 'The plastic cell', 'address 25', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1105, 2, NULL, NULL, 0, 0), - (126, 'Many places', 'address 26', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1106, 2, NULL, NULL, 0, 0), - (127, 'Your pocket', 'address 27', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1107, 2, NULL, NULL, 0, 0), - (128, 'Cerebro', 'address 28', 'Gotham', 46460, 5, 1111111111, 222222222, 1, 1108, 2, NULL, NULL, 0, 0), - (129, 'Luke Cages Bar', 'address 29', 'Gotham', 'EC170150', 1, 1111111111, 222222222, 1, 1110, 2, NULL, NULL, 0, 0), - (130, 'Non valid address', 'address 30', 'Gotham', 46460, 1, 1111111111, 222222222, 0, 1101, 2, NULL, NULL, 0, 0); + VALUES + (1, 'Bruce Wayne', '1007 Mountain Drive, Gotham', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1101, 2, -74.1111111, 10.1111111, 0, 1), + (2, 'Petter Parker', '20 Ingram Street', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1102, 2, -74.2222222, 10.2222222, 0, 1), + (3, 'Clark Kent', '344 Clinton Street', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1103, 2, -74.3333333, 10.3333333, 0, 1), + (4, 'Tony Stark', '10880 Malibu Point', 'Gotham', 46460, 1, 1111111111, 222222222, 1 , 1104, 2, -74.4444444, 10.4444444, 0, 1), + (5, 'Max Eisenhardt', 'Unknown Whereabouts', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1105, 2, NULL, NULL, 0, 1), + (6, 'DavidCharlesHaller', 'Evil hideout', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1106, 2, NULL, NULL, 0, 1), + (7, 'Hank Pym', 'Anthill', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1107, 2, NULL, NULL, 0, 1), + (8, 'Charles Xavier', '3800 Victory Pkwy, Cincinnati, OH 45207, USA', 'Gotham', 46460, 5, 1111111111, 222222222, 1, 1108, 2, NULL, NULL, 0, 1), + (9, 'Bruce Banner', 'Somewhere in New York', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1109, 2, NULL, NULL, 0, 1), + (10, 'Jessica Jones', 'NYCC 2015 Poster', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1110, 2, NULL, NULL, 0, 1), + (11, 'Missing', 'The space', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1111, 10, NULL, NULL, 0, 1), + (12, 'Trash', 'New York city', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1112, 10, NULL, NULL, 0, 1), + (101, 'Somewhere in Thailand', 'address 01', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1109, 2, NULL, NULL, 0, 0), + (102, 'Somewhere in Poland', 'address 02', 'Gotham', 46460, 1, 3333333333, 444444444, 1, 1109, 2, NULL, NULL, 0, 0), + (103, 'Somewhere in Japan', 'address 03', 'Gotham', 46460, 1, 3333333333, 444444444, 1, 1109, 2, NULL, NULL, 0, 0), + (104, 'Somewhere in Spain', 'address 04', 'Gotham', 46460, 1, 3333333333, 444444444, 1, 1109, 2, NULL, NULL, 0, 0), + (105, 'Somewhere in Potugal', 'address 05', 'Gotham', 46460, 1, 5555555555, 666666666, 1, 1109, 2, NULL, NULL, 0, 0), + (106, 'Somewhere in UK', 'address 06', 'Gotham', 46460, 1, 5555555555, 666666666, 1, 1109, 2, NULL, NULL, 0, 0), + (107, 'Somewhere in Valencia', 'address 07', 'Gotham', 46460, 1, 5555555555, 666666666, 1, 1109, 2, NULL, NULL, 0, 0), + (108, 'Somewhere in Gotham', 'address 08', 'Gotham', 46460, 1, 5555555555, 666666666, 1, 1109, 2, NULL, NULL, 0, 0), + (109, 'Somewhere in London', 'address 09', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1109, 2, NULL, NULL, 0, 0), + (110, 'Somewhere in Algemesi', 'address 10', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1109, 2, NULL, NULL, 0, 0), + (111, 'Somewhere in Carlet', 'address 11', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1109, 2, NULL, NULL, 0, 0), + (112, 'Somewhere in Campanar', 'address 12', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1109, 2, NULL, NULL, 0, 0), + (113, 'Somewhere in Malilla', 'address 13', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1109, 2, NULL, NULL, 0, 0), + (114, 'Somewhere in France', 'address 14', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1109, 2, NULL, NULL, 0, 0), + (115, 'Somewhere in Birmingham', 'address 15', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1109, 2, NULL, NULL, 0, 0), + (116, 'Somewhere in Scotland', 'address 16', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1109, 2, NULL, NULL, 0, 0), + (117, 'Somewhere in nowhere', 'address 17', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1109, 2, NULL, NULL, 0, 0), + (118, 'Somewhere over the rainbow', 'address 18', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1109, 2, NULL, NULL, 0, 0), + (119, 'Somewhere in Alberic', 'address 19', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1109, 2, NULL, NULL, 0, 0), + (120, 'Somewhere in Montortal', 'address 20', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1109, 2, NULL, NULL, 0, 0), + (121, 'the bat cave', 'address 21', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1101, 2, NULL, NULL, 0, 0), + (122, 'NY roofs', 'address 22', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1102, 2, NULL, NULL, 0, 0), + (123, 'The phone box', 'address 23', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1103, 2, -74.555555, 10.555555, 0, 0), + (124, 'Stark tower Gotham', 'address 24', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1104, 2, NULL, NULL, 0, 0), + (125, 'The plastic cell', 'address 25', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1105, 2, NULL, NULL, 0, 0), + (126, 'Many places', 'address 26', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1106, 2, NULL, NULL, 0, 0), + (127, 'Your pocket', 'address 27', 'Gotham', 46460, 1, 1111111111, 222222222, 1, 1107, 2, NULL, NULL, 0, 0), + (128, 'Cerebro', 'address 28', 'Gotham', 46460, 5, 1111111111, 222222222, 1, 1108, 2, NULL, NULL, 0, 0), + (129, 'Luke Cages Bar', 'address 29', 'Gotham', 'EC170150', 1, 1111111111, 222222222, 1, 1110, 2, NULL, NULL, 0, 0), + (130, 'Non valid address', 'address 30', 'Gotham', 46460, 1, 1111111111, 222222222, 0, 1101, 2, NULL, NULL, 0, 0); INSERT INTO `vn`.`address`( `nickname`, `street`, `city`, `postalCode`, `provinceFk`, `isActive`, `clientFk`, `agencyModeFk`, `isDefaultAddress`) - SELECT name, CONCAT(name, 'Street'), 'GOTHAM', 46460, 1, 1, id, 2, 1 - FROM `account`.`role` `r` - WHERE `r`.`hasLogin` = 1; + SELECT name, CONCAT(name, 'Street'), 'GOTHAM', 46460, 1, 1, id, 2, 1 + FROM `account`.`role` `r` + WHERE `r`.`hasLogin` = 1; UPDATE `vn`.`client` SET defaultAddressFk = 1 WHERE id = 1101; UPDATE `vn`.`client` SET defaultAddressFk = 2 WHERE id = 1102; @@ -492,169 +492,169 @@ UPDATE `vn`.`client` SET defaultAddressFk = 12 WHERE id = 400; DROP TEMPORARY TABLE IF EXISTS tmp.address; CREATE TEMPORARY TABLE tmp.address - SELECT * FROM `vn`.`address`; + SELECT * FROM `vn`.`address`; - UPDATE `vn`.`client` `c` - JOIN `tmp`.`address` `a` ON `a`.`clientFk` = `c`.`id` +UPDATE `vn`.`client` `c` + JOIN `tmp`.`address` `a` ON `a`.`clientFk` = `c`.`id` SET `c`.`defaultAddressFk` = `a`.`id` - WHERE `defaultAddressFk` IS NULL; + WHERE `defaultAddressFk` IS NULL; DROP TEMPORARY TABLE tmp.address; INSERT INTO `vn`.`clientCredit`(`clientFk`, `workerFk`, `amount`, `created`) - VALUES - (1101, 5, 300, DATE_ADD(util.VN_CURDATE(), INTERVAL -11 MONTH)), - (1101, 5, 900, DATE_ADD(util.VN_CURDATE(), INTERVAL -10 MONTH)), - (1101, 5, 800, DATE_ADD(util.VN_CURDATE(), INTERVAL -9 MONTH)), - (1101, 5, 700, DATE_ADD(util.VN_CURDATE(), INTERVAL -8 MONTH)), - (1101, 5, 600, DATE_ADD(util.VN_CURDATE(), INTERVAL -7 MONTH)), - (1101, 5, 500, DATE_ADD(util.VN_CURDATE(), INTERVAL -6 MONTH)), - (1101, 5, 400, DATE_ADD(util.VN_CURDATE(), INTERVAL -5 MONTH)), - (1101, 9, 300, DATE_ADD(util.VN_CURDATE(), INTERVAL -4 MONTH)), - (1101, 9, 200, DATE_ADD(util.VN_CURDATE(), INTERVAL -3 MONTH)), - (1101, 9, 100, DATE_ADD(util.VN_CURDATE(), INTERVAL -2 MONTH)), - (1101, 9, 50 , DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH)), - (1102, 9, 800, util.VN_CURDATE()), - (1104, 9, 90 , util.VN_CURDATE()), - (1105, 9, 90 , util.VN_CURDATE()); + VALUES + (1101, 5, 300, DATE_ADD(util.VN_CURDATE(), INTERVAL -11 MONTH)), + (1101, 5, 900, DATE_ADD(util.VN_CURDATE(), INTERVAL -10 MONTH)), + (1101, 5, 800, DATE_ADD(util.VN_CURDATE(), INTERVAL -9 MONTH)), + (1101, 5, 700, DATE_ADD(util.VN_CURDATE(), INTERVAL -8 MONTH)), + (1101, 5, 600, DATE_ADD(util.VN_CURDATE(), INTERVAL -7 MONTH)), + (1101, 5, 500, DATE_ADD(util.VN_CURDATE(), INTERVAL -6 MONTH)), + (1101, 5, 400, DATE_ADD(util.VN_CURDATE(), INTERVAL -5 MONTH)), + (1101, 9, 300, DATE_ADD(util.VN_CURDATE(), INTERVAL -4 MONTH)), + (1101, 9, 200, DATE_ADD(util.VN_CURDATE(), INTERVAL -3 MONTH)), + (1101, 9, 100, DATE_ADD(util.VN_CURDATE(), INTERVAL -2 MONTH)), + (1101, 9, 50 , DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH)), + (1102, 9, 800, util.VN_CURDATE()), + (1104, 9, 90 , util.VN_CURDATE()), + (1105, 9, 90 , util.VN_CURDATE()); INSERT INTO `vn`.`roleCreditLimit`(`id`, `maxAmount`, `roleFk`) - VALUES - (1, 9999999, 20), - (2, 10000, 21), - (3, 600, 13); + VALUES + (1, 9999999, 20), + (2, 10000, 21), + (3, 600, 13); INSERT INTO `vn`.`clientObservation`(`id`, `clientFk`, `workerFk`, `text`, `created`) - VALUES - (1, 1101, 1, 'Madness, as you know, is like gravity, all it takes is a little push', util.VN_CURDATE()), - (2, 1102, 1, 'With great power, comes great responsibility', util.VN_CURDATE()), - (3, 1103, 3, 'this is a job for Super-Man!', util.VN_CURDATE()), - (4, 1104, 3, 'yes... I am Iron-Man', util.VN_CURDATE()), - (5, 1105, 5, 'They do understand. Our mutant powers make us superior', util.VN_CURDATE()), - (6, 1106, 5, 'My name is Legion, for we are many!', util.VN_CURDATE()), - (7, 1107, 9, 'I think our first move should be calling the Avengers..', util.VN_CURDATE()), - (8, 1108, 9, 'Just because someone stumbles and loses their path, does not mean they are lost forever.', util.VN_CURDATE()), - (9, 1109, 18, 'HULK SMASH! ...', util.VN_CURDATE()), - (10, 1110, 18, 'They say everyone is born a hero. But if you let it, life will push you over the line until you are the villain.', util.VN_CURDATE()); + VALUES + (1, 1101, 1, 'Madness, as you know, is like gravity, all it takes is a little push', util.VN_CURDATE()), + (2, 1102, 1, 'With great power, comes great responsibility', util.VN_CURDATE()), + (3, 1103, 3, 'this is a job for Super-Man!', util.VN_CURDATE()), + (4, 1104, 3, 'yes... I am Iron-Man', util.VN_CURDATE()), + (5, 1105, 5, 'They do understand. Our mutant powers make us superior', util.VN_CURDATE()), + (6, 1106, 5, 'My name is Legion, for we are many!', util.VN_CURDATE()), + (7, 1107, 9, 'I think our first move should be calling the Avengers..', util.VN_CURDATE()), + (8, 1108, 9, 'Just because someone stumbles and loses their path, does not mean they are lost forever.', util.VN_CURDATE()), + (9, 1109, 18, 'HULK SMASH! ...', util.VN_CURDATE()), + (10, 1110, 18, 'They say everyone is born a hero. But if you let it, life will push you over the line until you are the villain.', util.VN_CURDATE()); INSERT INTO `vn`.`observationType`(`id`,`description`, `code`) - VALUES - (1, 'ItemPicker', 'itemPicker'), - (2, 'Packager', 'packager'), - (3, 'Delivery', 'delivery'), - (4, 'SalesPerson', 'salesPerson'), - (5, 'Administrative', 'administrative'), - (6, 'Weight', 'weight'), - (7, 'InvoiceOut', 'invoiceOut'), - (8, 'DropOff', 'dropOff'), + VALUES + (1, 'ItemPicker', 'itemPicker'), + (2, 'Packager', 'packager'), + (3, 'Delivery', 'delivery'), + (4, 'SalesPerson', 'salesPerson'), + (5, 'Administrative', 'administrative'), + (6, 'Weight', 'weight'), + (7, 'InvoiceOut', 'invoiceOut'), + (8, 'DropOff', 'dropOff'), (9, 'Sustitución', 'substitution'), (10, 'Finance', 'finance'); INSERT INTO `vn`.`addressObservation`(`id`,`addressFk`,`observationTypeFk`,`description`) - VALUES - (1, 121, 1, 'under the floor'), - (2, 121, 2, 'wears leather and goes out at night'), - (3, 121, 3, 'care with the dog'), - (5, 122, 5, 'Delivery after 10am'); + VALUES + (1, 121, 1, 'under the floor'), + (2, 121, 2, 'wears leather and goes out at night'), + (3, 121, 3, 'care with the dog'), + (5, 122, 5, 'Delivery after 10am'); INSERT INTO `vn`.`creditClassification`(`id`, `client`, `dateStart`, `dateEnd`) - VALUES - (1, 1101, util.VN_CURDATE(), util.VN_CURDATE()), - (2, 1102, util.VN_CURDATE(), util.VN_CURDATE()), - (3, 1103, util.VN_CURDATE(), util.VN_CURDATE()), - (4, 1104, util.VN_CURDATE(), util.VN_CURDATE()), - (5, 1105, util.VN_CURDATE(), util.VN_CURDATE()); + VALUES + (1, 1101, util.VN_CURDATE(), util.VN_CURDATE()), + (2, 1102, util.VN_CURDATE(), util.VN_CURDATE()), + (3, 1103, util.VN_CURDATE(), util.VN_CURDATE()), + (4, 1104, util.VN_CURDATE(), util.VN_CURDATE()), + (5, 1105, util.VN_CURDATE(), util.VN_CURDATE()); INSERT INTO `vn`.`creditInsurance`(`id`, `creditClassificationFk`, `credit`, `creationDate`, `grade`) - VALUES - (1, 1, 3000, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), NULL), - (2, 2, 6000, DATE_ADD(util.VN_CURDATE(), INTERVAL -2 MONTH), NULL), - (3, 3, 10000, DATE_ADD(util.VN_CURDATE(), INTERVAL -3 MONTH), NULL); + VALUES + (1, 1, 3000, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), NULL), + (2, 2, 6000, DATE_ADD(util.VN_CURDATE(), INTERVAL -2 MONTH), NULL), + (3, 3, 10000, DATE_ADD(util.VN_CURDATE(), INTERVAL -3 MONTH), NULL); INSERT INTO `vn`.`companyGroup`(`id`, `code`) - VALUES - (1, 'wayneIndustries'), - (2, 'verdnatura'); + VALUES + (1, 'wayneIndustries'), + (2, 'verdnatura'); INSERT INTO `vn`.`supplierActivity`(`code`, `name`) - VALUES - ('animals', 'Food and complements for pets'), - ('complements', 'Other complements'), - ('flowerPlants', 'Wholesale of flowers and plants'), - ('vegetablesFruits', 'Fruit and vegetable trade'); + VALUES + ('animals', 'Food and complements for pets'), + ('complements', 'Other complements'), + ('flowerPlants', 'Wholesale of flowers and plants'), + ('vegetablesFruits', 'Fruit and vegetable trade'); INSERT INTO `vn`.`supplier`(`id`, `name`, `nickname`,`account`,`countryFk`,`nif`, `commission`, `created`, `isActive`, `street`, `city`, `provinceFk`, `postCode`, `payMethodFk`, `payDemFk`, `payDay`, `taxTypeSageFk`, `withholdingSageFk`, `transactionTypeSageFk`, `workerFk`, `supplierActivityFk`, `isPayMethodChecked`, `healthRegister`) - VALUES - (1, 'PLANTS SL', 'Plants nick', 4100000001, 1, '06089160W', 0, util.VN_CURDATE(), 1, 'supplier address 1', 'GOTHAM', 1, 46000, 1, 1, 15, 4, 1, 1, 18, 'flowerPlants', 1, '400664487V'), - (2, 'FARMER KING', 'The farmer', 4000020002, 1, '87945234L', 0, util.VN_CURDATE(), 1, 'supplier address 2', 'GOTHAM', 2, 46000, 1, 2, 10, 93, 2, 8, 18, 'animals', 1, '400664487V'), - (4, 'INVENTARIO', 'INVENTARIO', 4000000004, NULL, NULL, 0, util.VN_CURDATE(), 1, NULL, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, NULL, NULL), - (69, 'PACKAGING', 'Packaging nick', 4100000069, 1, '94935005K', 0, util.VN_CURDATE(), 1, 'supplier address 5', 'ASGARD', 3, 46600, 1, 1, 15, 4, 1, 1, 18, 'flowerPlants', 1, '400664487V'), - (442, 'VERDNATURA LEVANTE SL', 'Verdnatura', 5115000442, 1, '06815934E', 0, util.VN_CURDATE(), 1, 'supplier address 3', 'GOTHAM', 1, 46000, 1, 2, 15, 6, 9, 3, 18, 'complements', 1, '400664487V'), - (567, 'HOLLAND', 'Holland nick', 4000020567, 1, '14364089Z', 0, util.VN_CURDATE(), 1, 'supplier address 6', 'ASGARD', 3, 46600, 1, 2, 10, 93, 2, 8, 18, 'animals', 1, '400664487V'), - (791, 'BROS SL', 'Bros nick', 5115000791, 1, '37718083S', 0, util.VN_CURDATE(), 1, 'supplier address 7', 'ASGARD', 3, 46600, 1, 2, 15, 6, 9, 3, 18, 'complements', 1, '400664487V'), - (1381, 'ORNAMENTALES', 'Ornamentales', 7185001381, 1, '07972486L', 0, util.VN_CURDATE(), 1, 'supplier address 4', 'GOTHAM', 1, 46000, 1, 2, 15, 6, 9, 3, 18, 'complements', 1, '400664487V'); + VALUES + (1, 'PLANTS SL', 'Plants nick', 4100000001, 1, '06089160W', 0, util.VN_CURDATE(), 1, 'supplier address 1', 'GOTHAM', 1, 46000, 1, 1, 15, 4, 1, 1, 18, 'flowerPlants', 1, '400664487V'), + (2, 'FARMER KING', 'The farmer', 4000020002, 1, '87945234L', 0, util.VN_CURDATE(), 1, 'supplier address 2', 'GOTHAM', 2, 46000, 1, 2, 10, 93, 2, 8, 18, 'animals', 1, '400664487V'), + (4, 'INVENTARIO', 'INVENTARIO', 4000000004, NULL, NULL, 0, util.VN_CURDATE(), 1, NULL, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, NULL, NULL), + (69, 'PACKAGING', 'Packaging nick', 4100000069, 1, '94935005K', 0, util.VN_CURDATE(), 1, 'supplier address 5', 'ASGARD', 3, 46600, 1, 1, 15, 4, 1, 1, 18, 'flowerPlants', 1, '400664487V'), + (442, 'VERDNATURA LEVANTE SL', 'Verdnatura', 5115000442, 1, '06815934E', 0, util.VN_CURDATE(), 1, 'supplier address 3', 'GOTHAM', 1, 46000, 1, 2, 15, 6, 9, 3, 18, 'complements', 1, '400664487V'), + (567, 'HOLLAND', 'Holland nick', 4000020567, 1, '14364089Z', 0, util.VN_CURDATE(), 1, 'supplier address 6', 'ASGARD', 3, 46600, 1, 2, 10, 93, 2, 8, 18, 'animals', 1, '400664487V'), + (791, 'BROS SL', 'Bros nick', 5115000791, 1, '37718083S', 0, util.VN_CURDATE(), 1, 'supplier address 7', 'ASGARD', 3, 46600, 1, 2, 15, 6, 9, 3, 18, 'complements', 1, '400664487V'), + (1381, 'ORNAMENTALES', 'Ornamentales', 7185001381, 1, '07972486L', 0, util.VN_CURDATE(), 1, 'supplier address 4', 'GOTHAM', 1, 46000, 1, 2, 15, 6, 9, 3, 18, 'complements', 1, '400664487V'); INSERT INTO `vn`.`supplierAddress`(`id`, `supplierFk`, `nickname`, `street`, `provinceFk`, `postalCode`, `city`, `phone`, `mobile`) - VALUES - (1, 1, 'Ace Chemicals', 'The Midtown', 1, '46000', 'Gotham', '111111111', '222222222'), - (2, 1, 'Arkham Asylum', 'Grand Avenue', 1, '46000', 'Gotham', '111111111', '222222222'), - (3, 2, 'Wayne Tower', 'Grand Avenue', 1, '46000', 'Gotham', '111111111', '222222222'), - (4, 2, 'Bank of Gotham', 'Founders Island', 1, '46000', 'Gotham', '111111111', '222222222'), - (5, 442, 'GCR building', 'Bristol district', 1, '46000', 'Gotham', '111111111', '222222222'), - (6, 442, 'The Gotham Tonight building', 'Bristol district', 1, '46000', 'Gotham', '111111111', '222222222'); + VALUES + (1, 1, 'Ace Chemicals', 'The Midtown', 1, '46000', 'Gotham', '111111111', '222222222'), + (2, 1, 'Arkham Asylum', 'Grand Avenue', 1, '46000', 'Gotham', '111111111', '222222222'), + (3, 2, 'Wayne Tower', 'Grand Avenue', 1, '46000', 'Gotham', '111111111', '222222222'), + (4, 2, 'Bank of Gotham', 'Founders Island', 1, '46000', 'Gotham', '111111111', '222222222'), + (5, 442, 'GCR building', 'Bristol district', 1, '46000', 'Gotham', '111111111', '222222222'), + (6, 442, 'The Gotham Tonight building', 'Bristol district', 1, '46000', 'Gotham', '111111111', '222222222'); INSERT INTO `vn`.`supplierContact`(`id`, `supplierFk`, `phone`, `mobile`, `email`, `observation`, `name`) - VALUES - (1, 1, 123121212, 654789123, 'supplier1@email.es', 'observation1', 'the boss'), - (2, 1, 987456132, NULL, NULL, NULL, 'the salesperson'), - (3, 2, 321654987, NULL, 'supplier2@email.es', NULL, NULL), - (4, 442, 321654987, NULL, NULL, 'observation442', NULL); + VALUES + (1, 1, 123121212, 654789123, 'supplier1@email.es', 'observation1', 'the boss'), + (2, 1, 987456132, NULL, NULL, NULL, 'the salesperson'), + (3, 2, 321654987, NULL, 'supplier2@email.es', NULL, NULL), + (4, 442, 321654987, NULL, NULL, 'observation442', NULL); INSERT INTO `vn`.`supplierAccount`(`id`, `supplierFk`, `iban`, `bankEntityFk`) - VALUES - (241, 442, 'ES111122333344111122221111', 128); + VALUES + (241, 442, 'ES111122333344111122221111', 128); INSERT INTO `vn`.`company`(`id`, `code`, `supplierAccountFk`, `workerManagerFk`, `companyCode`, `expired`, `companyGroupFk`, `phytosanitary` , `clientFk`) - VALUES - (69 , 'CCs', NULL, 30, 0, NULL, 1, NULL , NULL), - (442 , 'VNL', 241, 30, 1, NULL, 2, 'VNL Company - Plant passport' , 1101), - (567 , 'VNH', NULL, 30, 4, NULL, 1, 'VNH Company - Plant passport' , NULL), - (791 , 'FTH', NULL, 30, 3, '2015-11-30', 1, NULL , NULL), - (1381, 'ORN', NULL, 30, 7, NULL, 1, 'ORN Company - Plant passport' , NULL); + VALUES + (69 , 'CCs', NULL, 30, 0, NULL, 1, NULL , NULL), + (442 , 'VNL', 241, 30, 1, NULL, 2, 'VNL Company - Plant passport' , 1101), + (567 , 'VNH', NULL, 30, 4, NULL, 1, 'VNH Company - Plant passport' , NULL), + (791 , 'FTH', NULL, 30, 3, '2015-11-30', 1, NULL , NULL), + (1381, 'ORN', NULL, 30, 7, NULL, 1, 'ORN Company - Plant passport' , NULL); INSERT INTO `vn`.`taxArea` (`code`, `claveOperacionFactura`, `CodigoTransaccion`) - VALUES - ('CEE', 1, 10), - ('EQU', 0, 1), - ('NATIONAL', 0, 1), - ('WORLD', 2, 15); + VALUES + ('CEE', 1, 10), + ('EQU', 0, 1), + ('NATIONAL', 0, 1), + ('WORLD', 2, 15); INSERT INTO vn.invoiceOutConfig - SET id = 1, - parallelism = 8; + SET id = 1, + parallelism = 8; INSERT INTO `vn`.`invoiceOutSerial` - (`code`,`description`, `isTaxed`, `taxAreaFk`, `isCEE`, `type`) - VALUES - ('A', 'Global nacional', 1, 'NATIONAL', 0, 'global'), - ('T', 'Española rapida', 1, 'NATIONAL', 0, 'quick'), - ('V', 'Intracomunitaria global', 0, 'CEE', 1, 'global'), - ('M', 'Múltiple nacional', 1, 'NATIONAL', 0, 'multiple'), - ('R', 'Rectificativa', 1, 'NATIONAL', 0, NULL), - ('E', 'Exportación rápida', 0, 'WORLD', 0, 'quick'), - ('H', 'Intracomunitaria rápida', 0, 'CEE', 1, 'quick'), - ('P', 'Factura simplificada', 1, 'NATIONAL', 0, NULL), - ('PE', 'COOPERATIE FLORAHOLLAND UA', 0, 'CEE', 1, NULL), - ('S', 'Simplificada', 1, 'NATIONAL', 0, NULL), - ('X', 'Exportación global', 0, 'WORLD', 0, 'global'), - ('N', 'Múltiple Intracomunitaria', 0, 'CEE', 1, 'multiple'); + (`code`,`description`, `isTaxed`, `taxAreaFk`, `isCEE`, `type`) + VALUES + ('A', 'Global nacional', 1, 'NATIONAL', 0, 'global'), + ('T', 'Española rapida', 1, 'NATIONAL', 0, 'quick'), + ('V', 'Intracomunitaria global', 0, 'CEE', 1, 'global'), + ('M', 'Múltiple nacional', 1, 'NATIONAL', 0, 'multiple'), + ('R', 'Rectificativa', 1, 'NATIONAL', 0, NULL), + ('E', 'Exportación rápida', 0, 'WORLD', 0, 'quick'), + ('H', 'Intracomunitaria rápida', 0, 'CEE', 1, 'quick'), + ('P', 'Factura simplificada', 1, 'NATIONAL', 0, NULL), + ('PE', 'COOPERATIE FLORAHOLLAND UA', 0, 'CEE', 1, NULL), + ('S', 'Simplificada', 1, 'NATIONAL', 0, NULL), + ('X', 'Exportación global', 0, 'WORLD', 0, 'global'), + ('N', 'Múltiple Intracomunitaria', 0, 'CEE', 1, 'multiple'); INSERT INTO `vn`.`invoiceOut`(`id`, `serial`, `amount`, `issued`,`clientFk`, `created`, `companyFk`, `dued`, `booked`, `bankFk`, `hasPdf`) - VALUES - (1, 'T', 1026.24, util.VN_CURDATE(), 1101, util.VN_CURDATE(), 442, util.VN_CURDATE(), util.VN_CURDATE(), 1, 0), - (2, 'T', 121.36, util.VN_CURDATE(), 1102, util.VN_CURDATE(), 442, util.VN_CURDATE(), util.VN_CURDATE(), 1, 0), - (3, 'T', 8.88, util.VN_CURDATE(), 1103, util.VN_CURDATE(), 442, util.VN_CURDATE(), util.VN_CURDATE(), 1, 0), - (4, 'T', 8.88, util.VN_CURDATE(), 1104, util.VN_CURDATE(), 442, util.VN_CURDATE(), util.VN_CURDATE(), 1, 0), - (5, 'A', 8.88, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 1103, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 442, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 1, 0); + VALUES + (1, 'T', 1026.24, util.VN_CURDATE(), 1101, util.VN_CURDATE(), 442, util.VN_CURDATE(), util.VN_CURDATE(), 1, 0), + (2, 'T', 121.36, util.VN_CURDATE(), 1102, util.VN_CURDATE(), 442, util.VN_CURDATE(), util.VN_CURDATE(), 1, 0), + (3, 'T', 8.88, util.VN_CURDATE(), 1103, util.VN_CURDATE(), 442, util.VN_CURDATE(), util.VN_CURDATE(), 1, 0), + (4, 'T', 8.88, util.VN_CURDATE(), 1104, util.VN_CURDATE(), 442, util.VN_CURDATE(), util.VN_CURDATE(), 1, 0), + (5, 'A', 8.88, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 1103, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 442, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 1, 0); UPDATE `vn`.`invoiceOut` SET ref = 'T1111111' WHERE id = 1; UPDATE `vn`.`invoiceOut` SET ref = 'T2222222' WHERE id = 2; @@ -663,860 +663,860 @@ UPDATE `vn`.`invoiceOut` SET ref = 'T4444444' WHERE id = 4; UPDATE `vn`.`invoiceOut` SET ref = 'A1111111' WHERE id = 5; INSERT INTO `vn`.`invoiceOutTax` (`invoiceOutFk`, `taxableBase`, `vat`, `pgcFk`) - VALUES - (1, 895.76, 89.58, 4722000010), - (1, 33.80, 7.10, 4722000021), - (2, 110.33, 11.03, 4770000010), - (3, 8.07, 0.81, 4770000010), - (4, 8.07, 0.81, 4770000010), - (5, 8.07, 0.81, 4770000010); + VALUES + (1, 895.76, 89.58, 4722000010), + (1, 33.80, 7.10, 4722000021), + (2, 110.33, 11.03, 4770000010), + (3, 8.07, 0.81, 4770000010), + (4, 8.07, 0.81, 4770000010), + (5, 8.07, 0.81, 4770000010); INSERT INTO `vn`.`expense`(`id`, `name`, `isWithheld`) - VALUES - (2000000000, 'Inmovilizado pendiente', 0), - (2000000001, 'Compra de bienes de inmovilizado', 0), - (4751000000, 'Retenciones', 1), - (4751000001, 'Retencion', 0), - (6210000567, 'Alquiler VNH', 0), - (6240000000, 'Transportes de ventas rutas', 0), - (7001000000, 'Mercaderia', 0), - (7050000000, 'Prestacion de servicios', 1); + VALUES + (2000000000, 'Inmovilizado pendiente', 0), + (2000000001, 'Compra de bienes de inmovilizado', 0), + (4751000000, 'Retenciones', 1), + (4751000001, 'Retencion', 0), + (6210000567, 'Alquiler VNH', 0), + (6240000000, 'Transportes de ventas rutas', 0), + (7001000000, 'Mercaderia', 0), + (7050000000, 'Prestacion de servicios', 1); INSERT INTO `vn`.`agencyTermConfig` VALUES ('6240000000','4721000015',21.0000000000,'Adquisiciones intracomunitarias de servicios'); INSERT INTO `vn`.`invoiceOutExpense`(`id`, `invoiceOutFk`, `amount`, `expenseFk`, `created`) - VALUES - (1, 1, 813.06, 2000000000, util.VN_CURDATE()), - (2, 1, 33.80, 4751000000, util.VN_CURDATE()), - (3, 1, 70.70, 6210000567, util.VN_CURDATE()), - (4, 2, 110.33, 2000000000, util.VN_CURDATE()), - (5, 3, 8.07, 2000000000, util.VN_CURDATE()), - (6, 4, 8.07, 2000000000, util.VN_CURDATE()), - (7, 5, 8.07, 2000000000, util.VN_CURDATE()); + VALUES + (1, 1, 813.06, 2000000000, util.VN_CURDATE()), + (2, 1, 33.80, 4751000000, util.VN_CURDATE()), + (3, 1, 70.70, 6210000567, util.VN_CURDATE()), + (4, 2, 110.33, 2000000000, util.VN_CURDATE()), + (5, 3, 8.07, 2000000000, util.VN_CURDATE()), + (6, 4, 8.07, 2000000000, util.VN_CURDATE()), + (7, 5, 8.07, 2000000000, util.VN_CURDATE()); INSERT INTO `vn`.`zone` (`id`, `name`, `hour`, `agencyModeFk`, `travelingDays`, `price`, `bonus`, `itemMaxSize`) - VALUES - (1, 'Zone pickup A', CONCAT(util.VN_CURDATE(), ' ', TIME('23:59')), 1, 0, 1, 0, 100), - (2, 'Zone pickup B', CONCAT(util.VN_CURDATE(), ' ', TIME('23:59')), 1, 0, 1, 0, 100), - (3, 'Zone 247 A', CONCAT(util.VN_CURDATE(), ' ', TIME('23:59')), 7, 1, 2, 0, 100), - (4, 'Zone 247 B', CONCAT(util.VN_CURDATE(), ' ', TIME('23:59')), 7, 1, 2, 0, 100), - (5, 'Zone expensive A', CONCAT(util.VN_CURDATE(), ' ', TIME('23:59')), 8, 1, 1000, 0, 100), - (6, 'Zone expensive B', CONCAT(util.VN_CURDATE(), ' ', TIME('23:59')), 8, 1, 1000, 0, 100), - (7, 'Zone refund', CONCAT(util.VN_CURDATE(), ' ', TIME('23:59')), 23, 0, 1, 0, 100), - (8, 'Zone others', CONCAT(util.VN_CURDATE(), ' ', TIME('23:59')), 10, 0, 1, 0, 100), - (9, 'Zone superMan', CONCAT(util.VN_CURDATE(), ' ', TIME('23:59')), 2, 0, 1, 0, 100), - (10, 'Zone teleportation', CONCAT(util.VN_CURDATE(), ' ', TIME('23:59')), 3, 0, 1, 0, 100), - (11, 'Zone pickup C', CONCAT(util.VN_CURDATE(), ' ', TIME('23:59')), 1, 0, 1, 0, 100), - (12, 'Zone entanglement', CONCAT(util.VN_CURDATE(), ' ', TIME('23:59')), 4, 0, 1, 0, 100), - (13, 'Zone quantum break', CONCAT(util.VN_CURDATE(), ' ', TIME('23:59')), 5, 0, 1, 0, 100); + VALUES + (1, 'Zone pickup A', CONCAT(util.VN_CURDATE(), ' ', TIME('23:59')), 1, 0, 1, 0, 100), + (2, 'Zone pickup B', CONCAT(util.VN_CURDATE(), ' ', TIME('23:59')), 1, 0, 1, 0, 100), + (3, 'Zone 247 A', CONCAT(util.VN_CURDATE(), ' ', TIME('23:59')), 7, 1, 2, 0, 100), + (4, 'Zone 247 B', CONCAT(util.VN_CURDATE(), ' ', TIME('23:59')), 7, 1, 2, 0, 100), + (5, 'Zone expensive A', CONCAT(util.VN_CURDATE(), ' ', TIME('23:59')), 8, 1, 1000, 0, 100), + (6, 'Zone expensive B', CONCAT(util.VN_CURDATE(), ' ', TIME('23:59')), 8, 1, 1000, 0, 100), + (7, 'Zone refund', CONCAT(util.VN_CURDATE(), ' ', TIME('23:59')), 23, 0, 1, 0, 100), + (8, 'Zone others', CONCAT(util.VN_CURDATE(), ' ', TIME('23:59')), 10, 0, 1, 0, 100), + (9, 'Zone superMan', CONCAT(util.VN_CURDATE(), ' ', TIME('23:59')), 2, 0, 1, 0, 100), + (10, 'Zone teleportation', CONCAT(util.VN_CURDATE(), ' ', TIME('23:59')), 3, 0, 1, 0, 100), + (11, 'Zone pickup C', CONCAT(util.VN_CURDATE(), ' ', TIME('23:59')), 1, 0, 1, 0, 100), + (12, 'Zone entanglement', CONCAT(util.VN_CURDATE(), ' ', TIME('23:59')), 4, 0, 1, 0, 100), + (13, 'Zone quantum break', CONCAT(util.VN_CURDATE(), ' ', TIME('23:59')), 5, 0, 1, 0, 100); INSERT INTO `vn`.`zoneWarehouse` (`id`, `zoneFk`, `warehouseFk`) - VALUES - (1, 1, 1), - (2, 2, 2), - (3, 3, 1), - (4, 4, 2), - (5, 5, 1), - (6, 6, 2), - (7, 7, 1), - (8, 8, 1), - (9, 9, 1), - (10, 10, 3), - (11, 11, 5), - (12, 12, 4), - (13, 13, 5); + VALUES + (1, 1, 1), + (2, 2, 2), + (3, 3, 1), + (4, 4, 2), + (5, 5, 1), + (6, 6, 2), + (7, 7, 1), + (8, 8, 1), + (9, 9, 1), + (10, 10, 3), + (11, 11, 5), + (12, 12, 4), + (13, 13, 5); INSERT INTO `vn`.`zoneClosure` (`zoneFk`, `dated`, `hour`) - VALUES - (1, util.VN_CURDATE(), '23:59'), - (2, util.VN_CURDATE(), '23:59'), - (3, util.VN_CURDATE(), '23:59'), - (4, util.VN_CURDATE(), '23:59'), - (5, util.VN_CURDATE(), '23:59'), - (6, util.VN_CURDATE(), '23:59'), - (7, util.VN_CURDATE(), '23:59'), - (8, util.VN_CURDATE(), '23:59'), - (9, util.VN_CURDATE(), '23:59'), - (10, util.VN_CURDATE(), '23:59'), - (11, util.VN_CURDATE(), '23:59'), - (12, util.VN_CURDATE(), '23:59'), - (13, util.VN_CURDATE(), '23:59'); + VALUES + (1, util.VN_CURDATE(), '23:59'), + (2, util.VN_CURDATE(), '23:59'), + (3, util.VN_CURDATE(), '23:59'), + (4, util.VN_CURDATE(), '23:59'), + (5, util.VN_CURDATE(), '23:59'), + (6, util.VN_CURDATE(), '23:59'), + (7, util.VN_CURDATE(), '23:59'), + (8, util.VN_CURDATE(), '23:59'), + (9, util.VN_CURDATE(), '23:59'), + (10, util.VN_CURDATE(), '23:59'), + (11, util.VN_CURDATE(), '23:59'), + (12, util.VN_CURDATE(), '23:59'), + (13, util.VN_CURDATE(), '23:59'); 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()), - (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()); + 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()), + (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()); 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 - (1 , 3, 1, 1, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL -1 MONTH), INTERVAL +1 DAY), 1101, 'Bat cave', 121, NULL, 0, 1, 5, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 1, 1, 'hasHighRisk', 901.4), - (2 , 1, 1, 1, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL -1 MONTH), INTERVAL +1 DAY), 1101, 'Bat cave', 1, NULL, 0, 1, 5, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 2, 2, 'hasHighRisk', 901.4), - (3 , 1, 7, 1, 6, DATE_ADD(util.VN_CURDATE(), INTERVAL -2 MONTH), DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL -2 MONTH), INTERVAL +1 DAY), 1104, 'Stark tower', 124, NULL, 0, 3, 5, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -2 MONTH), NULL, 3, NULL, NULL), - (4 , 3, 2, 1, 2, DATE_ADD(util.VN_CURDATE(), INTERVAL -3 MONTH), DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL -3 MONTH), INTERVAL +1 DAY), 1104, 'Stark tower', 124, NULL, 0, 9, 5, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -3 MONTH), NULL, NULL, NULL, NULL), - (5 , 3, 3, 3, 3, DATE_ADD(util.VN_CURDATE(), INTERVAL -4 MONTH), DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL -4 MONTH), INTERVAL +1 DAY), 1104, 'Stark tower', 124, NULL, 0, 10, 5, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -4 MONTH), NULL, NULL, NULL, NULL), - (6 , 1, 3, 3, 3, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL -1 MONTH), INTERVAL +1 DAY), 1101, 'Mountain Drive Gotham', 1, NULL, 0, 10, 5, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), NULL, NULL, 'hasHighRisk', 901.4), - (7 , NULL, 7, 1, 6, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1101, 'Mountain Drive Gotham', 1, NULL, 0, 3, 5, 1, util.VN_CURDATE(), NULL, NULL, 'hasHighRisk', 901.4), - (8 , NULL, 7, 1, 6, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1101, 'Bat cave', 121, NULL, 0, 3, 5, 1, util.VN_CURDATE(), NULL, NULL, 'hasHighRisk', 901.4), - (9 , NULL, 7, 1, 6, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1104, 'Stark tower', 124, NULL, 0, 3, 5, 1, util.VN_CURDATE(), NULL, NULL, NULL, NULL), - (10, 1, 1, 5, 1, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1102, 'Ingram Street', 2, NULL, 0, 1, 5, 1, util.VN_CURDATE(), NULL, NULL, 'isTooLittle', NULL), - (11, 1, 7, 1, 6, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1102, 'NY roofs', 122, NULL, 0, 3, 5, 1, util.VN_CURDATE(), NULL, NULL, 'hasTicketRequest', NULL), - (12, 1, 8, 1, 1, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1103, 'Phone Box', 123, NULL, 0, 1, 5, 1, util.VN_CURDATE(), NULL, NULL, NULL, NULL), - (13, 1, 7, 1, 6, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1103, 'Phone Box', 123, NULL, 0, 3, 5, 1, util.VN_CURDATE(), NULL, NULL, NULL, NULL), - (14, 1, 2, 1, NULL, util.VN_CURDATE(), util.VN_CURDATE(), 1104, 'Malibu Point', 4, NULL, 0, 9, 5, 1, util.VN_CURDATE(), NULL, NULL, NULL, NULL), - (15, 1, 7, 1, 6, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1105, 'An incredibly long alias for testing purposes', 125, NULL, 0, 3, 5, 1, util.VN_CURDATE(), NULL, NULL, 'isFreezed', NULL), - (16, 1, 7, 1, 6, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1106, 'Many Places', 126, NULL, 0, 3, 5, 1, util.VN_CURDATE(), NULL, NULL, NULL, 388.7), - (17, 1, 7, 2, 6, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1106, 'Many Places', 126, NULL, 0, 3, 5, 1, util.VN_CURDATE(), NULL, NULL, NULL, 388.7), - (18, 1, 4, 4, 4, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1108, 'Cerebro', 128, NULL, 0, 12, 5, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL +12 HOUR), NULL, NULL, 'isFreezed', NULL), - (19, 1, 5, 5, NULL, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1109, 'Somewhere in Thailand', 129, NULL, 1, NULL, 5, 1, util.VN_CURDATE(), NULL, NULL, 'isTaxDataChecked', NULL), - (20, 1, 5, 5, 3, DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH), DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL +1 MONTH), INTERVAL +1 DAY), 1109, 'Somewhere in Thailand', 129, NULL, 0, 13, 5, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH), NULL, NULL, 'isTaxDataChecked', NULL), - (21, NULL, 5, 5, 5, DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH), DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL +1 MONTH), INTERVAL +1 DAY), 1109, 'Somewhere in Holland', 102, NULL, 0, 13, 5, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH), NULL, NULL, 'isTaxDataChecked', NULL), - (22, NULL, 5, 5, 5, DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH), DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL +1 MONTH), INTERVAL +1 DAY), 1109, 'Somewhere in Japan', 103, NULL, 0, 13, 5, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH), NULL, NULL, 'isTaxDataChecked', NULL), - (23, NULL, 8, 1, 7, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1101, 'address 21', 121, NULL, 0, 5, 5, 1, util.VN_CURDATE(), NULL, NULL, 'hasTicketRequest, hasHighRisk', 901.4), - (24 ,NULL, 8, 1, 7, util.VN_CURDATE(), util.VN_CURDATE(), 1101, 'Bruce Wayne', 1, NULL, 0, 5, 5, 1, util.VN_CURDATE(), NULL, NULL, 'hasHighRisk', 901.4), - (25 ,NULL, 8, 1, NULL, util.VN_CURDATE(), util.VN_CURDATE(), 1101, 'Bruce Wayne', 1, NULL, 0, 1, 5, 1, util.VN_CURDATE(), NULL, NULL, 'hasHighRisk', 901.4), - (26 ,NULL, 8, 1, NULL, util.VN_CURDATE(), util.VN_CURDATE(), 1101, 'An incredibly long alias for testing purposes', 1, NULL, 0, 1, 5, 1, util.VN_CURDATE(), NULL, NULL, 'hasHighRisk', 901.4), - (27 ,NULL, 8, 1, NULL, util.VN_CURDATE(), util.VN_CURDATE(), 1101, 'Wolverine', 1, NULL, 0, 1, 5, 1, util.VN_CURDATE(), NULL, NULL, NULL, 901.4), - (28, 1, 8, 1, 1, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1103, 'Phone Box', 123, NULL, 0, 1, 5, 1, util.VN_CURDATE(), NULL, NULL, NULL, NULL), - (29, 1, 8, 1, 1, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1103, 'Phone Box', 123, NULL, 0, 1, 5, 1, util.VN_CURDATE(), NULL, NULL, NULL, NULL), - (30, 1, 8, 1, 1, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1103, 'Phone Box', 123, NULL, 0, 1, 5, 1, util.VN_CURDATE(), NULL, NULL, NULL, NULL), - (31, 1, 8, 1, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), DATE_ADD(util.VN_CURDATE(), INTERVAL + 2 DAY), 1103, 'Phone Box', 123, NULL, 0, 1, 5, 1, util.VN_CURDATE(), NULL, NULL, NULL, NULL), - (32, 1, 8, 1, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), DATE_ADD(util.VN_CURDATE(), INTERVAL + 2 DAY), 1103, 'Phone Box', 123, NULL, 0, 1, 5, 1, util.VN_CURDATE(), NULL, NULL, NULL, NULL), - (33, 1, 7, 1, 6, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1102, 'NY roofs', 122, NULL, 0, 3, 5, 1, util.VN_CURDATE(), NULL, NULL, NULL, NULL), - (34, 1, 1, 1, 3, util.VN_CURDATE(), util.VN_CURDATE(), 1103, 'BEJAR', 123, NULL, 0, 1, 16, 0, util.VN_CURDATE(), NULL, NULL, NULL, NULL), - (35, 1, 1, 1, 3, util.VN_CURDATE(), util.VN_CURDATE(), 1102, 'Somewhere in Philippines', 123, NULL, 0, 1, 16, 0, util.VN_CURDATE(), NULL, NULL, NULL, NULL), - (36, 1, 1, 1, 3, util.VN_CURDATE(), util.VN_CURDATE(), 1102, 'Ant-Man Adventure', 123, NULL, 0, 1, 16, 0, util.VN_CURDATE(), NULL, NULL, NULL, NULL), - (37, 1, 1, 1, 3, util.VN_CURDATE(), util.VN_CURDATE(), 1110, 'Deadpool swords', 123, NULL, 0, 1, 16, 0, util.VN_CURDATE(), NULL, NULL, NULL, NULL); + VALUES + (1 , 3, 1, 1, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL -1 MONTH), INTERVAL +1 DAY), 1101, 'Bat cave', 121, NULL, 0, 1, 5, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 1, 1, 'hasHighRisk', 901.4), + (2 , 1, 1, 1, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL -1 MONTH), INTERVAL +1 DAY), 1101, 'Bat cave', 1, NULL, 0, 1, 5, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 2, 2, 'hasHighRisk', 901.4), + (3 , 1, 7, 1, 6, DATE_ADD(util.VN_CURDATE(), INTERVAL -2 MONTH), DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL -2 MONTH), INTERVAL +1 DAY), 1104, 'Stark tower', 124, NULL, 0, 3, 5, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -2 MONTH), NULL, 3, NULL, NULL), + (4 , 3, 2, 1, 2, DATE_ADD(util.VN_CURDATE(), INTERVAL -3 MONTH), DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL -3 MONTH), INTERVAL +1 DAY), 1104, 'Stark tower', 124, NULL, 0, 9, 5, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -3 MONTH), NULL, NULL, NULL, NULL), + (5 , 3, 3, 3, 3, DATE_ADD(util.VN_CURDATE(), INTERVAL -4 MONTH), DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL -4 MONTH), INTERVAL +1 DAY), 1104, 'Stark tower', 124, NULL, 0, 10, 5, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -4 MONTH), NULL, NULL, NULL, NULL), + (6 , 1, 3, 3, 3, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL -1 MONTH), INTERVAL +1 DAY), 1101, 'Mountain Drive Gotham', 1, NULL, 0, 10, 5, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), NULL, NULL, 'hasHighRisk', 901.4), + (7 , NULL, 7, 1, 6, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1101, 'Mountain Drive Gotham', 1, NULL, 0, 3, 5, 1, util.VN_CURDATE(), NULL, NULL, 'hasHighRisk', 901.4), + (8 , NULL, 7, 1, 6, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1101, 'Bat cave', 121, NULL, 0, 3, 5, 1, util.VN_CURDATE(), NULL, NULL, 'hasHighRisk', 901.4), + (9 , NULL, 7, 1, 6, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1104, 'Stark tower', 124, NULL, 0, 3, 5, 1, util.VN_CURDATE(), NULL, NULL, NULL, NULL), + (10, 1, 1, 5, 1, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1102, 'Ingram Street', 2, NULL, 0, 1, 5, 1, util.VN_CURDATE(), NULL, NULL, 'isTooLittle', NULL), + (11, 1, 7, 1, 6, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1102, 'NY roofs', 122, NULL, 0, 3, 5, 1, util.VN_CURDATE(), NULL, NULL, 'hasTicketRequest', NULL), + (12, 1, 8, 1, 1, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1103, 'Phone Box', 123, NULL, 0, 1, 5, 1, util.VN_CURDATE(), NULL, NULL, NULL, NULL), + (13, 1, 7, 1, 6, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1103, 'Phone Box', 123, NULL, 0, 3, 5, 1, util.VN_CURDATE(), NULL, NULL, NULL, NULL), + (14, 1, 2, 1, NULL, util.VN_CURDATE(), util.VN_CURDATE(), 1104, 'Malibu Point', 4, NULL, 0, 9, 5, 1, util.VN_CURDATE(), NULL, NULL, NULL, NULL), + (15, 1, 7, 1, 6, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1105, 'An incredibly long alias for testing purposes', 125, NULL, 0, 3, 5, 1, util.VN_CURDATE(), NULL, NULL, 'isFreezed', NULL), + (16, 1, 7, 1, 6, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1106, 'Many Places', 126, NULL, 0, 3, 5, 1, util.VN_CURDATE(), NULL, NULL, NULL, 388.7), + (17, 1, 7, 2, 6, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1106, 'Many Places', 126, NULL, 0, 3, 5, 1, util.VN_CURDATE(), NULL, NULL, NULL, 388.7), + (18, 1, 4, 4, 4, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1108, 'Cerebro', 128, NULL, 0, 12, 5, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL +12 HOUR), NULL, NULL, 'isFreezed', NULL), + (19, 1, 5, 5, NULL, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1109, 'Somewhere in Thailand', 129, NULL, 1, NULL, 5, 1, util.VN_CURDATE(), NULL, NULL, 'isTaxDataChecked', NULL), + (20, 1, 5, 5, 3, DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH), DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL +1 MONTH), INTERVAL +1 DAY), 1109, 'Somewhere in Thailand', 129, NULL, 0, 13, 5, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH), NULL, NULL, 'isTaxDataChecked', NULL), + (21, NULL, 5, 5, 5, DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH), DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL +1 MONTH), INTERVAL +1 DAY), 1109, 'Somewhere in Holland', 102, NULL, 0, 13, 5, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH), NULL, NULL, 'isTaxDataChecked', NULL), + (22, NULL, 5, 5, 5, DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH), DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL +1 MONTH), INTERVAL +1 DAY), 1109, 'Somewhere in Japan', 103, NULL, 0, 13, 5, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH), NULL, NULL, 'isTaxDataChecked', NULL), + (23, NULL, 8, 1, 7, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1101, 'address 21', 121, NULL, 0, 5, 5, 1, util.VN_CURDATE(), NULL, NULL, 'hasTicketRequest, hasHighRisk', 901.4), + (24 ,NULL, 8, 1, 7, util.VN_CURDATE(), util.VN_CURDATE(), 1101, 'Bruce Wayne', 1, NULL, 0, 5, 5, 1, util.VN_CURDATE(), NULL, NULL, 'hasHighRisk', 901.4), + (25 ,NULL, 8, 1, NULL, util.VN_CURDATE(), util.VN_CURDATE(), 1101, 'Bruce Wayne', 1, NULL, 0, 1, 5, 1, util.VN_CURDATE(), NULL, NULL, 'hasHighRisk', 901.4), + (26 ,NULL, 8, 1, NULL, util.VN_CURDATE(), util.VN_CURDATE(), 1101, 'An incredibly long alias for testing purposes', 1, NULL, 0, 1, 5, 1, util.VN_CURDATE(), NULL, NULL, 'hasHighRisk', 901.4), + (27 ,NULL, 8, 1, NULL, util.VN_CURDATE(), util.VN_CURDATE(), 1101, 'Wolverine', 1, NULL, 0, 1, 5, 1, util.VN_CURDATE(), NULL, NULL, NULL, 901.4), + (28, 1, 8, 1, 1, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1103, 'Phone Box', 123, NULL, 0, 1, 5, 1, util.VN_CURDATE(), NULL, NULL, NULL, NULL), + (29, 1, 8, 1, 1, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1103, 'Phone Box', 123, NULL, 0, 1, 5, 1, util.VN_CURDATE(), NULL, NULL, NULL, NULL), + (30, 1, 8, 1, 1, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1103, 'Phone Box', 123, NULL, 0, 1, 5, 1, util.VN_CURDATE(), NULL, NULL, NULL, NULL), + (31, 1, 8, 1, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), DATE_ADD(util.VN_CURDATE(), INTERVAL + 2 DAY), 1103, 'Phone Box', 123, NULL, 0, 1, 5, 1, util.VN_CURDATE(), NULL, NULL, NULL, NULL), + (32, 1, 8, 1, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), DATE_ADD(util.VN_CURDATE(), INTERVAL + 2 DAY), 1103, 'Phone Box', 123, NULL, 0, 1, 5, 1, util.VN_CURDATE(), NULL, NULL, NULL, NULL), + (33, 1, 7, 1, 6, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1102, 'NY roofs', 122, NULL, 0, 3, 5, 1, util.VN_CURDATE(), NULL, NULL, NULL, NULL), + (34, 1, 1, 1, 3, util.VN_CURDATE(), util.VN_CURDATE(), 1103, 'BEJAR', 123, NULL, 0, 1, 16, 0, util.VN_CURDATE(), NULL, NULL, NULL, NULL), + (35, 1, 1, 1, 3, util.VN_CURDATE(), util.VN_CURDATE(), 1102, 'Somewhere in Philippines', 123, NULL, 0, 1, 16, 0, util.VN_CURDATE(), NULL, NULL, NULL, NULL), + (36, 1, 1, 1, 3, util.VN_CURDATE(), util.VN_CURDATE(), 1102, 'Ant-Man Adventure', 123, NULL, 0, 1, 16, 0, util.VN_CURDATE(), NULL, NULL, NULL, NULL), + (37, 1, 1, 1, 3, util.VN_CURDATE(), util.VN_CURDATE(), 1110, 'Deadpool swords', 123, NULL, 0, 1, 16, 0, util.VN_CURDATE(), NULL, NULL, NULL, NULL); INSERT INTO `vn`.`ticketObservation`(`id`, `ticketFk`, `observationTypeFk`, `description`) - VALUES - (1, 11, 1, 'ready'), - (2, 2, 2, 'do it fast please'), - (3, 3, 5, 'Faster faster fasteeeeeer!!!'), - (4, 4, 5, 'Deliver before 8am'), - (5, 13, 5, 'You can run from the disappointments you are trying to forget. But its only when you embrace your past that you truly move forward. Maybe I never get to go home again, but I found my way there. And I am glad I did.'), - (6, 14, 5, 'Careful, armed warhead'), - (7, 23, 1, 'under the floor'), - (8, 23, 2, 'wears leather and goes out at night'), - (9, 23, 5, 'care with the dog'), - (10, 23, 4, 'Reclama ticket: 8'), - (11, 24, 4, 'Reclama ticket: 7'), - (12, 11, 3, 'Delivery after 10am'), - (13, 1, 7, 'observation of ticket one'), - (14, 2, 7, 'observation of ticket two'); + VALUES + (1, 11, 1, 'ready'), + (2, 2, 2, 'do it fast please'), + (3, 3, 5, 'Faster faster fasteeeeeer!!!'), + (4, 4, 5, 'Deliver before 8am'), + (5, 13, 5, 'You can run from the disappointments you are trying to forget. But its only when you embrace your past that you truly move forward. Maybe I never get to go home again, but I found my way there. And I am glad I did.'), + (6, 14, 5, 'Careful, armed warhead'), + (7, 23, 1, 'under the floor'), + (8, 23, 2, 'wears leather and goes out at night'), + (9, 23, 5, 'care with the dog'), + (10, 23, 4, 'Reclama ticket: 8'), + (11, 24, 4, 'Reclama ticket: 7'), + (12, 11, 3, 'Delivery after 10am'), + (13, 1, 7, 'observation of ticket one'), + (14, 2, 7, 'observation of ticket two'); -- FIX for state hours on local, inter_afterInsert -- UPDATE vncontrol.inter SET odbc_date = DATE_ADD(util.VN_CURDATE(), INTERVAL -10 SECOND); INSERT INTO `vn`.`ticketTracking`(`ticketFk`, `stateFk`, `userFk`, `created`) - VALUES - (1, 16, 5 , DATE_ADD(util.VN_NOW(), INTERVAL -1 MONTH)), - (2, 16, 5 , DATE_ADD(util.VN_NOW(), INTERVAL -1 MONTH)), - (3, 16, 5 , DATE_ADD(util.VN_NOW(), INTERVAL -2 MONTH)), - (4, 16, 5 , DATE_ADD(util.VN_NOW(), INTERVAL -3 MONTH)), - (5, 16, 18, DATE_ADD(util.VN_NOW(), INTERVAL -4 MONTH)), - (6, 16, 18, DATE_ADD(util.VN_NOW(), INTERVAL -1 MONTH)), - (7, 10, 18, util.VN_NOW()), - (8, 5, 19, util.VN_NOW()), - (9, 5, 19, util.VN_NOW()), - (10, 5, 19, util.VN_NOW()), - (11, 3, 19, util.VN_NOW()), - (12, 3, 19, util.VN_NOW()), - (13, 3, 19, util.VN_NOW()), - (14, 3, 19, util.VN_NOW()), - (15, 10, 19, util.VN_NOW()), - (16, 3, 19, util.VN_NOW()), - (17, 2, 19, util.VN_NOW()), - (37, 10, 19, util.VN_NOW()), - (19, 2, 19, util.VN_NOW()), - (20, 1, 19, DATE_ADD(util.VN_NOW(), INTERVAL +1 MONTH)), - (21, 1, 19, DATE_ADD(util.VN_NOW(), INTERVAL +1 MONTH)), - (22, 1, 19, DATE_ADD(util.VN_NOW(), INTERVAL +1 MONTH)), - (23, 16, 21, util.VN_NOW()), - (24, 16, 21, util.VN_NOW()), - (34, 14, 49, util.VN_NOW()), - (35, 14, 18, util.VN_NOW()), - (36, 14, 18, util.VN_NOW()); + VALUES + (1, 16, 5 , DATE_ADD(util.VN_NOW(), INTERVAL -1 MONTH)), + (2, 16, 5 , DATE_ADD(util.VN_NOW(), INTERVAL -1 MONTH)), + (3, 16, 5 , DATE_ADD(util.VN_NOW(), INTERVAL -2 MONTH)), + (4, 16, 5 , DATE_ADD(util.VN_NOW(), INTERVAL -3 MONTH)), + (5, 16, 18, DATE_ADD(util.VN_NOW(), INTERVAL -4 MONTH)), + (6, 16, 18, DATE_ADD(util.VN_NOW(), INTERVAL -1 MONTH)), + (7, 10, 18, util.VN_NOW()), + (8, 5, 19, util.VN_NOW()), + (9, 5, 19, util.VN_NOW()), + (10, 5, 19, util.VN_NOW()), + (11, 3, 19, util.VN_NOW()), + (12, 3, 19, util.VN_NOW()), + (13, 3, 19, util.VN_NOW()), + (14, 3, 19, util.VN_NOW()), + (15, 10, 19, util.VN_NOW()), + (16, 3, 19, util.VN_NOW()), + (17, 2, 19, util.VN_NOW()), + (37, 10, 19, util.VN_NOW()), + (19, 2, 19, util.VN_NOW()), + (20, 1, 19, DATE_ADD(util.VN_NOW(), INTERVAL +1 MONTH)), + (21, 1, 19, DATE_ADD(util.VN_NOW(), INTERVAL +1 MONTH)), + (22, 1, 19, DATE_ADD(util.VN_NOW(), INTERVAL +1 MONTH)), + (23, 16, 21, util.VN_NOW()), + (24, 16, 21, util.VN_NOW()), + (34, 14, 49, util.VN_NOW()), + (35, 14, 18, util.VN_NOW()), + (36, 14, 18, util.VN_NOW()); INSERT INTO `vn`.`deliveryPoint` (`id`, `name`, `ubication`) - VALUES - (1, 'Gotham','1007 Mountain Drive, Gotham'); + VALUES + (1, 'Gotham','1007 Mountain Drive, Gotham'); INSERT INTO `vn`.`vehicle`(`id`, `numberPlate`, `tradeMark`, `model`, `companyFk`, `warehouseFk`, `description`, `m3`, `isActive`, `deliveryPointFk`) - VALUES - (1, '3333-BAT', 'WAYNE INDUSTRIES', 'BATMOBILE', 442, 1, 'The ultimate war machine', 50, 1, 1), - (2, '1111-IMK', 'STARK INDUSTRIES', 'MARK-III', 442, 1, 'Iron-Man Heavy Armor MARK-III', 18, 1, 1), - (3, '2222-IMK', 'STARK INDUSTRIES', 'MARK-VI', 442, 1, 'Iron-Man Heavy Armor MARK-VI', 16, 1, 1), - (4, '3333-IMK', 'STARK INDUSTRIES', 'MARK-VII', 442, 1, 'Iron-Man Heavy Armor MARK-VII', 14, 1, 1), - (5, '4444-IMK', 'STARK INDUSTRIES', 'MARK-XLII', 442, 1, 'Iron-Man Heavy Armor MARK-XLII', 13, 1, 1), - (6, '5555-IMK', 'STARK INDUSTRIES', 'MARK-XLV', 442, 1, 'Iron-Man Heavy Armor MARK-XLV', 12, 0, 1); + VALUES + (1, '3333-BAT', 'WAYNE INDUSTRIES', 'BATMOBILE', 442, 1, 'The ultimate war machine', 50, 1, 1), + (2, '1111-IMK', 'STARK INDUSTRIES', 'MARK-III', 442, 1, 'Iron-Man Heavy Armor MARK-III', 18, 1, 1), + (3, '2222-IMK', 'STARK INDUSTRIES', 'MARK-VI', 442, 1, 'Iron-Man Heavy Armor MARK-VI', 16, 1, 1), + (4, '3333-IMK', 'STARK INDUSTRIES', 'MARK-VII', 442, 1, 'Iron-Man Heavy Armor MARK-VII', 14, 1, 1), + (5, '4444-IMK', 'STARK INDUSTRIES', 'MARK-XLII', 442, 1, 'Iron-Man Heavy Armor MARK-XLII', 13, 1, 1), + (6, '5555-IMK', 'STARK INDUSTRIES', 'MARK-XLV', 442, 1, 'Iron-Man Heavy Armor MARK-XLV', 12, 0, 1); INSERT INTO `vn`.`config`(`id`, `mdbServer`, `fakeEmail`, `defaultersMaxAmount`, `inventoried`) - VALUES - (1, 'beta-server', 'nightmare@mydomain.com', '200', DATE_ADD(util.VN_CURDATE(),INTERVAL -1 MONTH)); + VALUES + (1, 'beta-server', 'nightmare@mydomain.com', '200', DATE_ADD(util.VN_CURDATE(),INTERVAL -1 MONTH)); INSERT INTO `vn`.`greugeType`(`id`, `name`, `code`) - VALUES - (1, 'Diff', 'diff'), - (2, 'Recovery', 'recovery'), - (3, 'Mana', 'mana'), - (4, 'Claim', 'claim'), - (5, 'Heritage', 'heritage'), - (6, 'Miscellaneous', 'miscellaneous'), - (7, 'Freight Pickup', 'freightPickUp'); + VALUES + (1, 'Diff', 'diff'), + (2, 'Recovery', 'recovery'), + (3, 'Mana', 'mana'), + (4, 'Claim', 'claim'), + (5, 'Heritage', 'heritage'), + (6, 'Miscellaneous', 'miscellaneous'), + (7, 'Freight Pickup', 'freightPickUp'); INSERT INTO `vn`.`greuge`(`id`, `clientFk`, `description`, `amount`, `shipped`, `created`, `greugeTypeFk`, `ticketFk`) - VALUES - (1, 1101, 'some diff charges', -19.99, DATE_ADD(util.VN_CURDATE(), INTERVAL 1 MONTH), util.VN_CURDATE(), 1, 1), - (2, 1101, 'more diff charges', 60, DATE_ADD(util.VN_CURDATE(), INTERVAL 1 MONTH), util.VN_CURDATE(), 2, 1), - (3, 1101, 'even more! diff charges', -9.99, DATE_ADD(util.VN_CURDATE(), INTERVAL 1 MONTH), util.VN_CURDATE(), 3, 1), - (4, 1101, 'insane diff charges', 60, DATE_ADD(util.VN_CURDATE(), INTERVAL 1 MONTH), util.VN_CURDATE(), 4, 1), - (5, 1101, 'gargantuous diff charges', -9.99, DATE_ADD(util.VN_CURDATE(), INTERVAL 1 MONTH), util.VN_CURDATE(), 5, 1), - (6, 1101, 'diff charges', 88.30, DATE_ADD(util.VN_CURDATE(), INTERVAL 1 MONTH), util.VN_CURDATE(), 6, 1), - (7, 1101, 'unaffordable diff charges', -39.12, DATE_ADD(util.VN_CURDATE(), INTERVAL 1 MONTH), util.VN_CURDATE(), 1, 1), - (8, 1101, 'some recovery charges', 29.35, DATE_ADD(util.VN_CURDATE(), INTERVAL 1 MONTH), util.VN_CURDATE(), 2, 1), - (9, 1101, 'some manna charges', -9.99, DATE_ADD(util.VN_CURDATE(), INTERVAL 1 MONTH), util.VN_CURDATE(), 3, 1), - (10, 1101, 'some claim charges', 13.13, DATE_ADD(util.VN_CURDATE(), INTERVAL 1 MONTH), util.VN_CURDATE(), 4, 1), - (11, 1101, 'some heritage charges', -15.99, DATE_ADD(util.VN_CURDATE(), INTERVAL 1 MONTH), util.VN_CURDATE(), 5, 1), - (12, 1101, 'some miscellaneous charges', 58.00, DATE_ADD(util.VN_CURDATE(), INTERVAL 1 MONTH), util.VN_CURDATE(), 6, 1); + VALUES + (1, 1101, 'some diff charges', -19.99, DATE_ADD(util.VN_CURDATE(), INTERVAL 1 MONTH), util.VN_CURDATE(), 1, 1), + (2, 1101, 'more diff charges', 60, DATE_ADD(util.VN_CURDATE(), INTERVAL 1 MONTH), util.VN_CURDATE(), 2, 1), + (3, 1101, 'even more! diff charges', -9.99, DATE_ADD(util.VN_CURDATE(), INTERVAL 1 MONTH), util.VN_CURDATE(), 3, 1), + (4, 1101, 'insane diff charges', 60, DATE_ADD(util.VN_CURDATE(), INTERVAL 1 MONTH), util.VN_CURDATE(), 4, 1), + (5, 1101, 'gargantuous diff charges', -9.99, DATE_ADD(util.VN_CURDATE(), INTERVAL 1 MONTH), util.VN_CURDATE(), 5, 1), + (6, 1101, 'diff charges', 88.30, DATE_ADD(util.VN_CURDATE(), INTERVAL 1 MONTH), util.VN_CURDATE(), 6, 1), + (7, 1101, 'unaffordable diff charges', -39.12, DATE_ADD(util.VN_CURDATE(), INTERVAL 1 MONTH), util.VN_CURDATE(), 1, 1), + (8, 1101, 'some recovery charges', 29.35, DATE_ADD(util.VN_CURDATE(), INTERVAL 1 MONTH), util.VN_CURDATE(), 2, 1), + (9, 1101, 'some manna charges', -9.99, DATE_ADD(util.VN_CURDATE(), INTERVAL 1 MONTH), util.VN_CURDATE(), 3, 1), + (10, 1101, 'some claim charges', 13.13, DATE_ADD(util.VN_CURDATE(), INTERVAL 1 MONTH), util.VN_CURDATE(), 4, 1), + (11, 1101, 'some heritage charges', -15.99, DATE_ADD(util.VN_CURDATE(), INTERVAL 1 MONTH), util.VN_CURDATE(), 5, 1), + (12, 1101, 'some miscellaneous charges', 58.00, DATE_ADD(util.VN_CURDATE(), INTERVAL 1 MONTH), util.VN_CURDATE(), 6, 1); INSERT INTO `vn`.`mandate`(`id`, `clientFk`, `companyFk`, `code`, `created`, `mandateTypeFk`) - VALUES - (1, 1102, 442, '1-1', util.VN_CURDATE(), 2); + VALUES + (1, 1102, 442, '1-1', util.VN_CURDATE(), 2); INSERT INTO `vn`.`itemCategory`(`id`, `name`, `display`, `color`, `icon`, `code`) - VALUES - (1, 'Plant', 1, 'B92A26', 'icon-plant', 'plant'), - (2, 'Flower', 2, 'dcf711', 'icon-flower', 'flower'), - (3, 'Logistic', 0, 'b9f711', NULL, 'logistical'), - (4, 'Handmade', 1, NULL, 'icon-handmade', 'handmade'), - (5, 'Artificial', 1, NULL, 'icon-artificial', 'artificial'), - (6, 'Green', 1, NULL, 'icon-greenery', 'greenery'), - (7, 'Accessories', 1, NULL, 'icon-accessory', 'accessory'), - (8, 'Fruit', 1, NULL, 'icon-fruit', 'fruit'); + VALUES + (1, 'Plant', 1, 'B92A26', 'icon-plant', 'plant'), + (2, 'Flower', 2, 'dcf711', 'icon-flower', 'flower'), + (3, 'Logistic', 0, 'b9f711', NULL, 'logistical'), + (4, 'Handmade', 1, NULL, 'icon-handmade', 'handmade'), + (5, 'Artificial', 1, NULL, 'icon-artificial', 'artificial'), + (6, 'Green', 1, NULL, 'icon-greenery', 'greenery'), + (7, 'Accessories', 1, NULL, 'icon-accessory', 'accessory'), + (8, 'Fruit', 1, NULL, 'icon-fruit', 'fruit'); INSERT INTO `vn`.`temperature`(`code`, `name`, `description`) - VALUES - ('warm', 'Warm', 'Warm'), - ('cool', 'Cool', 'Cool'); + VALUES + ('warm', 'Warm', 'Warm'), + ('cool', 'Cool', 'Cool'); INSERT INTO `vn`.`itemType`(`id`, `code`, `name`, `categoryFk`, `life`, `workerFk`, `isPackaging`, `temperatureFk`, `isFragile`) - VALUES - (1, 'CRI', 'Crisantemo', 2, 31, 35, 0, 'cool', 0), - (2, 'ITG', 'Anthurium', 1, 31, 35, 0, 'cool', 1), - (3, 'WPN', 'Paniculata', 2, 31, 35, 0, 'cool', 0), - (4, 'PRT', 'Delivery ports', 3, NULL, 35, 1, 'warm', 0), - (5, 'CON', 'Container', 3, NULL, 35, 1, 'warm', 0), - (6, 'ALS', 'Alstroemeria', 1, 31, 16, 0, 'warm', 1); + VALUES + (1, 'CRI', 'Crisantemo', 2, 31, 35, 0, 'cool', 0), + (2, 'ITG', 'Anthurium', 1, 31, 35, 0, 'cool', 1), + (3, 'WPN', 'Paniculata', 2, 31, 35, 0, 'cool', 0), + (4, 'PRT', 'Delivery ports', 3, NULL, 35, 1, 'warm', 0), + (5, 'CON', 'Container', 3, NULL, 35, 1, 'warm', 0), + (6, 'ALS', 'Alstroemeria', 1, 31, 16, 0, 'warm', 1); INSERT INTO `vn`.`ink`(`id`, `name`, `picture`, `showOrder`, `hex`) - VALUES - ('YEL', 'Yellow', 1, 1, 'F4D03F'), - ('BLU', 'Blue', 1, 2, '5DADE2'), - ('RED', 'Red', 1, 3, 'EC7063'), - ('SLV', 'Silver', 1, 4, 'CACFD2'), - ('BRW', 'Brown', 1, 5, 'DC7633'), - ('BLK', 'Black', 1, 6, '000000'), - ('BAS', 'Blue/Silver', 1, 7, '5DADE2'), - ('GRN', 'Green', 1, 8, '28A745'), - ('WHT', 'White', 1, 9, 'FFFFFF'); + VALUES + ('YEL', 'Yellow', 1, 1, 'F4D03F'), + ('BLU', 'Blue', 1, 2, '5DADE2'), + ('RED', 'Red', 1, 3, 'EC7063'), + ('SLV', 'Silver', 1, 4, 'CACFD2'), + ('BRW', 'Brown', 1, 5, 'DC7633'), + ('BLK', 'Black', 1, 6, '000000'), + ('BAS', 'Blue/Silver', 1, 7, '5DADE2'), + ('GRN', 'Green', 1, 8, '28A745'), + ('WHT', 'White', 1, 9, 'FFFFFF'); INSERT INTO `vn`.`origin`(`id`,`code`, `name`) - VALUES - (1, 'SPA', 'Spain'), - (2, 'HOL', 'Holand'), - (3, 'VLC', 'Valencia'); + VALUES + (1, 'SPA', 'Spain'), + (2, 'HOL', 'Holand'), + (3, 'VLC', 'Valencia'); INSERT INTO `vn`.`producer`(`id`, `name`) - VALUES - (1, 'Marvel Studios'), - (2, 'Nordic Mythology'); + VALUES + (1, 'Marvel Studios'), + (2, 'Nordic Mythology'); INSERT INTO `vn`.`taxType`(`id`, `nickname`, `isAccrued`, `serial`, `TIPOOPE`, `description`, `countryFk`) - VALUES - (1, 'National', 1, 'R', 'I', 'national VAT', 1), - (2, 'European', 0, 'E', 'I', 'europe VAT', 1); + VALUES + (1, 'National', 1, 'R', 'I', 'national VAT', 1), + (2, 'European', 0, 'E', 'I', 'europe VAT', 1); INSERT INTO `vn`.`taxCode`(`id`, `dated`, `code`, `taxTypeFk`, `rate`, `equalizationTax`, `type`, `link`, `isActive`, `updated`, `transactionCode`) - VALUES - (1 , util.VN_CURDATE(), '1111111111', 1, 7.0 , 0.0, 'R', 1, 1, util.VN_CURDATE(), 1), - (2 , util.VN_CURDATE(), '2222222222', 2, 16.0, 0.0, 'G', 2, 1, util.VN_CURDATE(), 1), - (21 , util.VN_CURDATE(), '3333333333', 1, 7.0, 0.0, 'R', 3, 1, util.VN_CURDATE(), 1), - (108, util.VN_CURDATE(), '4444444444', 2, 8.0 , 0.0, 'R', 4, 1, util.VN_CURDATE(), 1); + VALUES + (1 , util.VN_CURDATE(), '1111111111', 1, 7.0 , 0.0, 'R', 1, 1, util.VN_CURDATE(), 1), + (2 , util.VN_CURDATE(), '2222222222', 2, 16.0, 0.0, 'G', 2, 1, util.VN_CURDATE(), 1), + (21 , util.VN_CURDATE(), '3333333333', 1, 7.0, 0.0, 'R', 3, 1, util.VN_CURDATE(), 1), + (108, util.VN_CURDATE(), '4444444444', 2, 8.0 , 0.0, 'R', 4, 1, util.VN_CURDATE(), 1); INSERT INTO `vn`.`taxClass`(`id`, `description`, `code`) - VALUES - (1, 'Reduced VAT', 'R'), - (2, 'General VAT', 'G'); + VALUES + (1, 'Reduced VAT', 'R'), + (2, 'General VAT', 'G'); INSERT INTO `vn`.`taxClassCode`(`taxClassFk`, `effectived`, `taxCodeFk`) - VALUES - (1, util.VN_CURDATE(), 1), - (1, util.VN_CURDATE(), 21), - (2, util.VN_CURDATE(), 2); + VALUES + (1, util.VN_CURDATE(), 1), + (1, util.VN_CURDATE(), 21), + (2, util.VN_CURDATE(), 2); INSERT INTO `vn`.`intrastat`(`id`, `description`, `taxClassFk`, `taxCodeFk`) - VALUES - (05080000, 'Coral y materiales similares', 2, 2), - (06021010, 'Plantas vivas: Esqueje/injerto, Vid', 1, 1); + VALUES + (05080000, 'Coral y materiales similares', 2, 2), + (06021010, 'Plantas vivas: Esqueje/injerto, Vid', 1, 1); INSERT INTO `vn`.`itemFamily`(`code`, `description`) - VALUES - ('EMB', 'Packagings'), - ('SER', 'Services'), - ('VT', 'Sales'); + VALUES + ('EMB', 'Packagings'), + ('SER', 'Services'), + ('VT', 'Sales'); INSERT INTO `vn`.`item`(`id`, `typeFk`, `stems`, `originFk`, `description`, `producerFk`, `intrastatFk`, `expenseFk`, - `comment`, `relevancy`, `image`, `subName`, `minPrice`, `family`, `isFloramondo`, `genericFk`, `itemPackingTypeFk`, `hasMinPrice`, `weightByPiece`) - VALUES - (1, 2, 1, 1, NULL, 1, 06021010, 2000000000, NULL, 0, '1', NULL, 0, 'EMB', 0, NULL, 'V', 0, 3), - (2, 2, 1, 2, NULL, 1, 06021010, 2000000000, NULL, 0, '2', NULL, 0, 'VT', 0, NULL, 'H', 0, 2), - (3, 1, 1, 3, NULL, 1, 05080000, 4751000000, NULL, 0, '3', NULL, 0, 'VT', 0, NULL, NULL, 0, 5), - (4, 1, 1, 1, 'Increases block', 1, 05080000, 4751000000, NULL, 0, '4', NULL, 0, 'VT', 0, NULL, NULL, 0, NULL), - (5, 3, 1, 2, NULL, 2, 06021010, 4751000000, NULL, 0, '5', NULL, 0, 'VT', 0, NULL, NULL, 0, NULL), - (6, 5, 1, 2, NULL, NULL, 06021010, 4751000000, NULL, 0, '6', NULL, 0, 'VT', 0, NULL, NULL, 0, NULL), - (7, 5, 1, 2, NULL, NULL, 06021010, 4751000000, NULL, 0, '7', NULL, 0, 'VT', 0, NULL, NULL, 0, NULL), - (8, 2, 1, 1, NULL, 1, 06021010, 2000000000, NULL, 0, '8', NULL, 0, 'VT', 0, NULL, NULL, 0, NULL), - (9, 2, 1, 2, NULL, 1, 06021010, 2000000000, NULL, 0, '9', NULL, 0, 'VT', 1, NULL, NULL, 0, NULL), - (10, 1, 1, 3, NULL, 1, 05080000, 4751000000, NULL, 0, '10', NULL, 0, 'VT', 0, NULL, NULL, 0, NULL), - (11, 1, 1, 1, NULL, 1, 05080000, 4751000000, NULL, 0, '11', NULL, 0, 'VT', 0, NULL, NULL, 0, NULL), - (12, 3, 1, 2, NULL, 2, 06021010, 4751000000, NULL, 0, '12', NULL, 0, 'VT', 0, NULL, NULL, 0, NULL), - (13, 5, 1, 2, NULL, NULL, 06021010, 4751000000, NULL, 0, '13', NULL, 1, 'VT', 1, NULL, NULL, 1, NULL), - (14, 5, 1, 2, NULL, NULL, 06021010, 4751000000, NULL, 0, '', NULL, 0, 'VT', 1, NULL, NULL, 0, NULL), - (15, 4, NULL, 1, NULL, NULL, 06021010, 4751000000, NULL, 0, '', NULL, 0, 'EMB', 0, NULL, NULL, 0, NULL), - (16, 6, NULL, 1, NULL, NULL, 06021010, 4751000000, NULL, 0, '', NULL, 0, 'EMB', 0, NULL, NULL, 0, NULL), - (71, 6, NULL, 1, NULL, NULL, 06021010, 4751000000, NULL, 0, '', NULL, 0, 'VT', 0, NULL, NULL, 0, NULL); + `comment`, `relevancy`, `image`, `subName`, `minPrice`, `family`, `isFloramondo`, `genericFk`, `itemPackingTypeFk`, `hasMinPrice`, `weightByPiece`) + VALUES + (1, 2, 1, 1, NULL, 1, 06021010, 2000000000, NULL, 0, '1', NULL, 0, 'EMB', 0, NULL, 'V', 0, 3), + (2, 2, 1, 2, NULL, 1, 06021010, 2000000000, NULL, 0, '2', NULL, 0, 'VT', 0, NULL, 'H', 0, 2), + (3, 1, 1, 3, NULL, 1, 05080000, 4751000000, NULL, 0, '3', NULL, 0, 'VT', 0, NULL, NULL, 0, 5), + (4, 1, 1, 1, 'Increases block', 1, 05080000, 4751000000, NULL, 0, '4', NULL, 0, 'VT', 0, NULL, NULL, 0, NULL), + (5, 3, 1, 2, NULL, 2, 06021010, 4751000000, NULL, 0, '5', NULL, 0, 'VT', 0, NULL, NULL, 0, NULL), + (6, 5, 1, 2, NULL, NULL, 06021010, 4751000000, NULL, 0, '6', NULL, 0, 'VT', 0, NULL, NULL, 0, NULL), + (7, 5, 1, 2, NULL, NULL, 06021010, 4751000000, NULL, 0, '7', NULL, 0, 'VT', 0, NULL, NULL, 0, NULL), + (8, 2, 1, 1, NULL, 1, 06021010, 2000000000, NULL, 0, '8', NULL, 0, 'VT', 0, NULL, NULL, 0, NULL), + (9, 2, 1, 2, NULL, 1, 06021010, 2000000000, NULL, 0, '9', NULL, 0, 'VT', 1, NULL, NULL, 0, NULL), + (10, 1, 1, 3, NULL, 1, 05080000, 4751000000, NULL, 0, '10', NULL, 0, 'VT', 0, NULL, NULL, 0, NULL), + (11, 1, 1, 1, NULL, 1, 05080000, 4751000000, NULL, 0, '11', NULL, 0, 'VT', 0, NULL, NULL, 0, NULL), + (12, 3, 1, 2, NULL, 2, 06021010, 4751000000, NULL, 0, '12', NULL, 0, 'VT', 0, NULL, NULL, 0, NULL), + (13, 5, 1, 2, NULL, NULL, 06021010, 4751000000, NULL, 0, '13', NULL, 1, 'VT', 1, NULL, NULL, 1, NULL), + (14, 5, 1, 2, NULL, NULL, 06021010, 4751000000, NULL, 0, '', NULL, 0, 'VT', 1, NULL, NULL, 0, NULL), + (15, 4, NULL, 1, NULL, NULL, 06021010, 4751000000, NULL, 0, '', NULL, 0, 'EMB', 0, NULL, NULL, 0, NULL), + (16, 6, NULL, 1, NULL, NULL, 06021010, 4751000000, NULL, 0, '', NULL, 0, 'EMB', 0, NULL, NULL, 0, NULL), + (71, 6, NULL, 1, NULL, NULL, 06021010, 4751000000, NULL, 0, '', NULL, 0, 'VT', 0, NULL, NULL, 0, NULL); -- Update the taxClass after insert of the items UPDATE `vn`.`itemTaxCountry` SET `taxClassFk` = 2 - WHERE `itemFk` IN(4, 5, 6, 7, 11, 12, 13, 14, 15, 16, 71); + WHERE `itemFk` IN(4, 5, 6, 7, 11, 12, 13, 14, 15, 16, 71); INSERT INTO `vn`.`priceFixed`(`id`, `itemFk`, `rate0`, `rate1`, `rate2`, `rate3`, `started`, `ended`, `bonus`, `warehouseFk`, `created`) - VALUES - (1, 1, 0, 0, 2.5, 2, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH), 0, 1, util.VN_CURDATE()), - (2, 3, 10, 10, 10, 10, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH), 0, 1, util.VN_CURDATE()), - (3, 13, 8.5, 10, 7.5, 6, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH), 1, 2, util.VN_CURDATE()); + VALUES + (1, 1, 0, 0, 2.5, 2, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH), 0, 1, util.VN_CURDATE()), + (2, 3, 10, 10, 10, 10, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH), 0, 1, util.VN_CURDATE()), + (3, 13, 8.5, 10, 7.5, 6, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH), 1, 2, util.VN_CURDATE()); INSERT INTO `vn`.`itemMinimumQuantity`(`itemFk`, `quantity`, `started`, `ended`, `warehouseFk`) - VALUES - (1, 5, util.VN_CURDATE() - INTERVAL 2 MONTH, util.VN_CURDATE() + INTERVAL 1 MONTH, 1), - (2, 10, util.VN_CURDATE() - INTERVAL 2 DAY, util.VN_CURDATE() - INTERVAL 1 DAY, 2), - (3, 15, util.VN_CURDATE() + INTERVAL 3 DAY, util.VN_CURDATE() + INTERVAL 2 WEEK, 3), - (2, 10, util.VN_CURDATE() + INTERVAL 2 MONTH, NULL, 5), - (4, 8, util.VN_CURDATE() - INTERVAL 3 MONTH, NULL, NULL); + VALUES + (1, 5, util.VN_CURDATE() - INTERVAL 2 MONTH, util.VN_CURDATE() + INTERVAL 1 MONTH, 1), + (2, 10, util.VN_CURDATE() - INTERVAL 2 DAY, util.VN_CURDATE() - INTERVAL 1 DAY, 2), + (3, 15, util.VN_CURDATE() + INTERVAL 3 DAY, util.VN_CURDATE() + INTERVAL 2 WEEK, 3), + (2, 10, util.VN_CURDATE() + INTERVAL 2 MONTH, NULL, 5), + (4, 8, util.VN_CURDATE() - INTERVAL 3 MONTH, NULL, NULL); INSERT INTO `vn`.`expeditionBoxVol`(`boxFk`, `m3`, `ratio`) - VALUES - (71,0.141,1); + VALUES + (71,0.141,1); INSERT INTO `vn`.`packaging`(`id`, `volume`, `width`, `height`, `depth`, `isPackageReturnable`, `created`, `itemFk`, `price`) - VALUES - (1, 0.00, 10, 10, 0, 1, util.VN_CURDATE(), 6, 1.50), - (2, 100.00, 20, 20, 0, 1, util.VN_CURDATE(), 7, 1.00), - (3, 14000.00, 0, 0, 0, 1, util.VN_CURDATE(), NULL, 0), - (4, 218000.00, 0, 0, 0, 0, util.VN_CURDATE(), NULL, 0), - (5, 292000.00, 0, 0, 0, 0, util.VN_CURDATE(), NULL, 0), - (94, 140875.00, 49.00, 115.00, 25.00, 0, util.VN_CURDATE(), 71, 0.00), - ('cc', 1640038.00, 56.00, 220.00, 128.00, 1, util.VN_CURDATE(), 15, 90.00), - ('pallet 100', 2745600.00, 100.00, 220.00, 120.00, 1, util.VN_CURDATE(), 16, 0.00); + VALUES + (1, 0.00, 10, 10, 0, 1, util.VN_CURDATE(), 6, 1.50), + (2, 100.00, 20, 20, 0, 1, util.VN_CURDATE(), 7, 1.00), + (3, 14000.00, 0, 0, 0, 1, util.VN_CURDATE(), NULL, 0), + (4, 218000.00, 0, 0, 0, 0, util.VN_CURDATE(), NULL, 0), + (5, 292000.00, 0, 0, 0, 0, util.VN_CURDATE(), NULL, 0), + (94, 140875.00, 49.00, 115.00, 25.00, 0, util.VN_CURDATE(), 71, 0.00), + ('cc', 1640038.00, 56.00, 220.00, 128.00, 1, util.VN_CURDATE(), 15, 90.00), + ('pallet 100', 2745600.00, 100.00, 220.00, 120.00, 1, util.VN_CURDATE(), 16, 0.00); INSERT INTO `vn`.`packagingConfig`(`id`, `upperGap`, `defaultSmallPackageFk`, `defaultBigPackageFk`) - VALUES - (1, '10', 1, 'pallet 100'); + VALUES + (1, '10', 1, 'pallet 100'); INSERT INTO `vn`.`expeditionStateType`(`id`, `description`, `code`) - VALUES - (1, 'En reparto', 'ON DELIVERY'), - (2, 'Entregada', 'DELIVERED'), - (3, 'Perdida', 'LOST'); + VALUES + (1, 'En reparto', 'ON DELIVERY'), + (2, 'Entregada', 'DELIVERED'), + (3, 'Perdida', 'LOST'); INSERT INTO `vn`.`expedition`(`id`, `agencyModeFk`, `ticketFk`, `freightItemFk`, `created`, `counter`, `workerFk`, `externalId`, `packagingFk`, `stateTypeFk`, `hostFk`) - VALUES - (1, 1, 1, 71, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 1, 18, 'UR9000006041', 94, 1, 'pc1'), - (2, 1, 1, 71, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 2, 18, 'UR9000006041', 94, 1, NULL), - (3, 1, 1, 71, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 3, 18, 'UR9000006041', 94, 2, NULL), - (4, 1, 1, 71, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 4, 18, 'UR9000006041', 94, 2, NULL), - (5, 1, 2, 71, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 1, 18, NULL, 94, 3, NULL), - (6, 7, 3, 71, DATE_ADD(util.VN_CURDATE(), INTERVAL -2 MONTH), 1, 18, NULL, 94, 3, NULL), - (7, 2, 4, 71, DATE_ADD(util.VN_CURDATE(), INTERVAL -3 MONTH), 1, 18, NULL, 94, NULL,NULL), - (8, 3, 5, 71, DATE_ADD(util.VN_CURDATE(), INTERVAL -4 MONTH), 1, 18, NULL, 94, 1, NULL), - (9, 3, 6, 71, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 1, 18, NULL, 94, 2, NULL), - (10, 7, 7, 71, util.VN_NOW(), 1, 18, NULL, 94, 3, NULL), - (11, 7, 8, 71, util.VN_NOW(), 1, 18, NULL, 94, 3, NULL), - (12, 7, 9, 71, util.VN_NOW(), 1, 18, NULL, 94, 3, NULL), - (13, 1, 10, 71, util.VN_NOW(), 1, 18, NULL, 94, 3, NULL), + VALUES + (1, 1, 1, 71, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 1, 18, 'UR9000006041', 94, 1, 'pc1'), + (2, 1, 1, 71, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 2, 18, 'UR9000006041', 94, 1, NULL), + (3, 1, 1, 71, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 3, 18, 'UR9000006041', 94, 2, NULL), + (4, 1, 1, 71, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 4, 18, 'UR9000006041', 94, 2, NULL), + (5, 1, 2, 71, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 1, 18, NULL, 94, 3, NULL), + (6, 7, 3, 71, DATE_ADD(util.VN_CURDATE(), INTERVAL -2 MONTH), 1, 18, NULL, 94, 3, NULL), + (7, 2, 4, 71, DATE_ADD(util.VN_CURDATE(), INTERVAL -3 MONTH), 1, 18, NULL, 94, NULL,NULL), + (8, 3, 5, 71, DATE_ADD(util.VN_CURDATE(), INTERVAL -4 MONTH), 1, 18, NULL, 94, 1, NULL), + (9, 3, 6, 71, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 1, 18, NULL, 94, 2, NULL), + (10, 7, 7, 71, util.VN_NOW(), 1, 18, NULL, 94, 3, NULL), + (11, 7, 8, 71, util.VN_NOW(), 1, 18, NULL, 94, 3, NULL), + (12, 7, 9, 71, util.VN_NOW(), 1, 18, NULL, 94, 3, NULL), + (13, 1, 10, 71, util.VN_NOW(), 1, 18, NULL, 94, 3, NULL), (14, 1, 37, 71, util.VN_NOW(), 1, 18, NULL, 94, 3, NULL); INSERT INTO `vn`.`expeditionState`(`id`, `created`, `expeditionFk`, `typeFk`, `userFk`) - VALUES - (1, util.VN_CURDATE(), 1, 1, 1), - (2, util.VN_CURDATE(), 2, 1, 1), - (3, util.VN_CURDATE(), 3, 1, 1), - (4, util.VN_CURDATE(), 3, 2, 1106), - (5, util.VN_CURDATE(), 5, 1, 1106), - (6, util.VN_CURDATE(), 5, 3, 1106); + VALUES + (1, util.VN_CURDATE(), 1, 1, 1), + (2, util.VN_CURDATE(), 2, 1, 1), + (3, util.VN_CURDATE(), 3, 1, 1), + (4, util.VN_CURDATE(), 3, 2, 1106), + (5, util.VN_CURDATE(), 5, 1, 1106), + (6, util.VN_CURDATE(), 5, 3, 1106); INSERT INTO `vn`.`ticketPackaging`(`id`, `ticketFk`, `packagingFk`, `quantity`, `created`, `pvp`) - VALUES - (1, 1, 2, 2, util.VN_CURDATE(), NULL), - (2, 2, 2, 1, util.VN_CURDATE(), NULL), - (3, 3, 2, 4, util.VN_CURDATE(), NULL); + VALUES + (1, 1, 2, 2, util.VN_CURDATE(), NULL), + (2, 2, 2, 1, util.VN_CURDATE(), NULL), + (3, 3, 2, 4, util.VN_CURDATE(), NULL); INSERT INTO `vn`.`sale`(`id`, `itemFk`, `ticketFk`, `concept`, `quantity`, `price`, `discount`, `reserved`, `isPicked`, `created`, `problem`) - VALUES - (1, 1, 1, 'Ranged weapon longbow 200cm', 5, 100.39, 0, 0, 0, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 'hasComponentLack'), - (2, 2, 1, 'Melee weapon combat fist 15cm', 10, 7.07, 0, 0, 0, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 'hasComponentLack'), - (3, 1, 1, 'Ranged weapon longbow 200cm', 2, 100.39, 0, 0, 0, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 'hasComponentLack'), - (4, 4, 1, 'Melee weapon heavy shield 100cm', 20, 1.69, 0, 0, 0, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 'hasComponentLack'), - (5, 1, 2, 'Ranged weapon longbow 200cm', 1, 110.33, 0, 0, 0, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 'hasComponentLack'), - (6, 1, 3, 'Ranged weapon longbow 200cm', 1, 110.33, 0, 0, 0, DATE_ADD(util.VN_CURDATE(), INTERVAL -2 MONTH), 'hasComponentLack'), - (7, 2, 11, 'Melee weapon combat fist 15cm', 15, 7.74, 0, 0, 0, util.VN_CURDATE(), NULL), - (8, 4, 11, 'Melee weapon heavy shield 100cm', 10, 1.79, 0, 0, 0, util.VN_CURDATE(), NULL), - (9, 1, 16, 'Ranged weapon longbow 200cm', 1, 103.49, 0, 0, 0, util.VN_CURDATE(), NULL), - (10, 2, 16, 'Melee weapon combat fist 15cm', 10, 7.09, 0, 0, 0, util.VN_CURDATE(), NULL), - (11, 1, 16, 'Ranged weapon longbow 200cm', 1, 103.49, 0, 0, 0, util.VN_CURDATE(), NULL), - (12, 4, 16, 'Melee weapon heavy shield 100cm', 20, 1.71, 0, 0, 0, util.VN_CURDATE(), NULL), - (13, 2, 8, 'Melee weapon combat fist 15cm', 10, 7.08, 0, 0, 0, util.VN_CURDATE(), NULL), - (14, 1, 8, 'Ranged weapon longbow 200cm', 2, 103.49, 0, 0, 0, util.VN_CURDATE(), NULL), - (15, 1, 19, 'Ranged weapon longbow 200cm', 1, 103.49, 0, 0, 0, util.VN_CURDATE(), NULL), - (16, 2, 20, 'Melee weapon combat fist 15cm', 20, 7.07, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack'), - (17, 2, 22, 'Melee weapon combat fist 15cm', 30, 7.07, 0, 0, 0, DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH), 'hasComponentLack'), - (18, 4, 22, 'Melee weapon heavy shield 100cm', 20, 1.69, 0, 0, 0, DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH), 'hasComponentLack'), - (19, 1, 4, 'Ranged weapon longbow 200cm', 1, 8.07, 0, 0, 0, DATE_ADD(util.VN_CURDATE(), INTERVAL -3 MONTH), 'hasComponentLack'), - (20, 1, 5, 'Ranged weapon longbow 200cm', 1, 8.07, 0, 0, 0, DATE_ADD(util.VN_CURDATE(), INTERVAL -4 MONTH), 'hasComponentLack'), - (21, 1, 6, 'Ranged weapon longbow 200cm', 1, 8.07, 0, 0, 0, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 'hasComponentLack'), - (22, 1, 7, 'Ranged weapon longbow 200cm', 1, 8.07, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack'), - (23, 1, 9, 'Ranged weapon longbow 200cm', 1, 8.07, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack'), - (24, 1, 10, 'Ranged weapon longbow 200cm', 1, 8.07, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack'), - (25, 4, 12, 'Melee weapon heavy shield 100cm', 20, 1.72, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack'), - (26, 4, 13, 'Melee weapon heavy shield 100cm', 20, 1.72, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack'), - (27, 4, 14, 'Melee weapon heavy shield 100cm', 20, 1.72, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack'), - (28, 4, 15, 'Melee weapon heavy shield 100cm', 20, 1.72, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack'), - (29, 4, 17, 'Melee weapon heavy shield 100cm', 20, 1.72, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack'), - (30, 4, 18, 'Melee weapon heavy shield 100cm', 20, 1.72, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack'), - (31, 2, 23, 'Melee weapon combat fist 15cm', -5, 7.08, 0, 0, 0, util.VN_CURDATE(), NULL), - (32, 1, 24, 'Ranged weapon longbow 200cm', -1, 8.07, 0, 0, 0, util.VN_CURDATE(), NULL), - (33, 5, 14, 'Ranged weapon pistol 9mm', 50, 1.79, 0, 0, 0, util.VN_CURDATE(), NULL), - (34, 4, 28, 'Melee weapon heavy shield 100cm', 20, 1.72, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack'), - (35, 4, 29, 'Melee weapon heavy shield 100cm', 20, 1.72, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack'), - (37, 4, 31, 'Melee weapon heavy shield 100cm', 20, 1.72, 0, 0, 0, util.VN_CURDATE(), NULL), - (36, 4, 30, 'Melee weapon heavy shield 100cm', 20, 1.72, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack'), - (38, 2, 32, 'Melee weapon combat fist 15cm', 30, 7.07, 0, 0, 0, DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH), 'hasComponentLack'), - (39, 1, 32, 'Ranged weapon longbow 200cm', 2, 103.49, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack'), - (40, 2, 34, 'Melee weapon combat fist 15cm', 10.00, 3.91, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack'), - (41, 2, 35, 'Melee weapon combat fist 15cm', 8.00, 3.01, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack'), - (42, 2, 36, 'Melee weapon combat fist 15cm', 6.00, 2.50, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack'); + VALUES + (1, 1, 1, 'Ranged weapon longbow 200cm', 5, 100.39, 0, 0, 0, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 'hasComponentLack'), + (2, 2, 1, 'Melee weapon combat fist 15cm', 10, 7.07, 0, 0, 0, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 'hasComponentLack'), + (3, 1, 1, 'Ranged weapon longbow 200cm', 2, 100.39, 0, 0, 0, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 'hasComponentLack'), + (4, 4, 1, 'Melee weapon heavy shield 100cm', 20, 1.69, 0, 0, 0, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 'hasComponentLack'), + (5, 1, 2, 'Ranged weapon longbow 200cm', 1, 110.33, 0, 0, 0, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 'hasComponentLack'), + (6, 1, 3, 'Ranged weapon longbow 200cm', 1, 110.33, 0, 0, 0, DATE_ADD(util.VN_CURDATE(), INTERVAL -2 MONTH), 'hasComponentLack'), + (7, 2, 11, 'Melee weapon combat fist 15cm', 15, 7.74, 0, 0, 0, util.VN_CURDATE(), NULL), + (8, 4, 11, 'Melee weapon heavy shield 100cm', 10, 1.79, 0, 0, 0, util.VN_CURDATE(), NULL), + (9, 1, 16, 'Ranged weapon longbow 200cm', 1, 103.49, 0, 0, 0, util.VN_CURDATE(), NULL), + (10, 2, 16, 'Melee weapon combat fist 15cm', 10, 7.09, 0, 0, 0, util.VN_CURDATE(), NULL), + (11, 1, 16, 'Ranged weapon longbow 200cm', 1, 103.49, 0, 0, 0, util.VN_CURDATE(), NULL), + (12, 4, 16, 'Melee weapon heavy shield 100cm', 20, 1.71, 0, 0, 0, util.VN_CURDATE(), NULL), + (13, 2, 8, 'Melee weapon combat fist 15cm', 10, 7.08, 0, 0, 0, util.VN_CURDATE(), NULL), + (14, 1, 8, 'Ranged weapon longbow 200cm', 2, 103.49, 0, 0, 0, util.VN_CURDATE(), NULL), + (15, 1, 19, 'Ranged weapon longbow 200cm', 1, 103.49, 0, 0, 0, util.VN_CURDATE(), NULL), + (16, 2, 20, 'Melee weapon combat fist 15cm', 20, 7.07, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack'), + (17, 2, 22, 'Melee weapon combat fist 15cm', 30, 7.07, 0, 0, 0, DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH), 'hasComponentLack'), + (18, 4, 22, 'Melee weapon heavy shield 100cm', 20, 1.69, 0, 0, 0, DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH), 'hasComponentLack'), + (19, 1, 4, 'Ranged weapon longbow 200cm', 1, 8.07, 0, 0, 0, DATE_ADD(util.VN_CURDATE(), INTERVAL -3 MONTH), 'hasComponentLack'), + (20, 1, 5, 'Ranged weapon longbow 200cm', 1, 8.07, 0, 0, 0, DATE_ADD(util.VN_CURDATE(), INTERVAL -4 MONTH), 'hasComponentLack'), + (21, 1, 6, 'Ranged weapon longbow 200cm', 1, 8.07, 0, 0, 0, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 'hasComponentLack'), + (22, 1, 7, 'Ranged weapon longbow 200cm', 1, 8.07, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack'), + (23, 1, 9, 'Ranged weapon longbow 200cm', 1, 8.07, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack'), + (24, 1, 10, 'Ranged weapon longbow 200cm', 1, 8.07, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack'), + (25, 4, 12, 'Melee weapon heavy shield 100cm', 20, 1.72, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack'), + (26, 4, 13, 'Melee weapon heavy shield 100cm', 20, 1.72, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack'), + (27, 4, 14, 'Melee weapon heavy shield 100cm', 20, 1.72, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack'), + (28, 4, 15, 'Melee weapon heavy shield 100cm', 20, 1.72, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack'), + (29, 4, 17, 'Melee weapon heavy shield 100cm', 20, 1.72, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack'), + (30, 4, 18, 'Melee weapon heavy shield 100cm', 20, 1.72, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack'), + (31, 2, 23, 'Melee weapon combat fist 15cm', -5, 7.08, 0, 0, 0, util.VN_CURDATE(), NULL), + (32, 1, 24, 'Ranged weapon longbow 200cm', -1, 8.07, 0, 0, 0, util.VN_CURDATE(), NULL), + (33, 5, 14, 'Ranged weapon pistol 9mm', 50, 1.79, 0, 0, 0, util.VN_CURDATE(), NULL), + (34, 4, 28, 'Melee weapon heavy shield 100cm', 20, 1.72, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack'), + (35, 4, 29, 'Melee weapon heavy shield 100cm', 20, 1.72, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack'), + (37, 4, 31, 'Melee weapon heavy shield 100cm', 20, 1.72, 0, 0, 0, util.VN_CURDATE(), NULL), + (36, 4, 30, 'Melee weapon heavy shield 100cm', 20, 1.72, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack'), + (38, 2, 32, 'Melee weapon combat fist 15cm', 30, 7.07, 0, 0, 0, DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH), 'hasComponentLack'), + (39, 1, 32, 'Ranged weapon longbow 200cm', 2, 103.49, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack'), + (40, 2, 34, 'Melee weapon combat fist 15cm', 10.00, 3.91, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack'), + (41, 2, 35, 'Melee weapon combat fist 15cm', 8.00, 3.01, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack'), + (42, 2, 36, 'Melee weapon combat fist 15cm', 6.00, 2.50, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack'); INSERT INTO `vn`.`saleComponent`(`saleFk`, `componentFk`, `value`) - VALUES - (1, 28, 50), - (1, 29, 49.4), - (1, 39, 0.994), - (2, 28, 5), - (2, 29, 2), - (2, 39, 0.07), - (3, 28, 50), - (3, 29, 49.4), - (3, 39, 0.994), - (4, 28, 1.25), - (4, 29, 0.42), - (4, 39, 0.017), - (5, 17, 9.94), - (5, 28, 50), - (5, 29, 49.4), - (5, 39, 0.994), - (6, 17, 9.94), - (6, 28, 50), - (6, 29, 49.4), - (6, 39, 0.994), - (7, 15, 0.0199), - (7, 17, 0.35), - (7, 28, 5), - (7, 29, 2), - (7, 39, 0.07), - (8, 15, 0.0199), - (8, 17, 0.084), - (8, 28, 1.25), - (8, 29, 0.42), - (8, 39, 0.017), - (9, 15, 3.0949), - (9, 21, 0.001), - (9, 28, 53), - (9, 29, 46.4), - (9, 39, 0.994), - (10, 15, 0.0199), - (10, 28, 7), - (10, 29, 0), - (10, 39, 0.07), - (11, 15, 3.0949), - (11, 21, 0.001), - (11, 28, 53), - (11, 29, 46.4), - (11, 39, 0.994), - (12, 15, 0.0199), - (12, 21, 0.003), - (12, 28, 2.25), - (12, 29, -0.58), - (12, 39, 0.017), - (13, 15, 0.114), - (13, 28, 5), - (13, 29, 2), - (13, 39, 0.07), - (14, 15, 3.0949), - (14, 28, 50), - (14, 29, 49.4), - (14, 39, 0.994), - (15, 15, 3.0949), - (15, 28, 50), - (15, 29, 49.4), - (15, 39, 0.994), - (16, 28, 5), - (16, 29, 2), - (16, 39, 0.07), - (17, 28, 5), - (17, 29, 2), - (17, 39, 0.07), - (18, 28, 1.25), - (18, 29, 0.42), - (18, 39, 0.017), - (19, 17, 0.7), - (19, 22, 0.3), - (19, 28, 5), - (19, 29, 2), - (19, 39, 0.02), - (20, 17, 0.7), - (20, 22, 0.3), - (20, 28, 5), - (20, 29, 2), - (20, 39, 0.02), - (21, 17, 0.7), - (21, 22, 0.3), - (21, 28, 5), - (21, 29, 2), - (21, 39, 0.02), - (22, 17, 0.7), - (22, 22, 0.3), - (22, 28, 5), - (22, 29, 2), - (22, 39, 0.02), - (23, 17, 0.7), - (23, 22, 0.3), - (23, 28, 5), - (23, 29, 2), - (23, 39, 0.02), - (24, 17, 0.7), - (24, 22, 0.3), - (24, 28, 5), - (24, 29, 2), - (24, 39, 0.02), - (25, 17, 0.033), - (25, 28, 1.25), - (25, 29, 0.42), - (25, 39, 0.017), - (26, 17, 0.033), - (26, 28, 1.25), - (26, 29, 0.42), - (26, 39, 0.017), - (27, 17, 0.033), - (27, 28, 1.25), - (27, 29, 0.42), - (27, 39, 0.017), - (28, 17, 0.033), - (28, 28, 1.25), - (28, 29, 0.42), - (28, 39, 0.017), - (29, 17, 0.033), - (29, 28, 1.25), - (29, 29, 0.42), - (29, 39, 0.017), - (30, 17, 0.033), - (30, 28, 1.25), - (30, 29, 0.42), - (30, 39, 0.017), - (31, 28, 5), - (31, 29, 2), - (31, 36, 0.01), - (31, 39, 0.07), - (32, 28, 50), - (32, 29, 49.4), - (32, 36, -92.324), - (32, 39, 0.994); + VALUES + (1, 28, 50), + (1, 29, 49.4), + (1, 39, 0.994), + (2, 28, 5), + (2, 29, 2), + (2, 39, 0.07), + (3, 28, 50), + (3, 29, 49.4), + (3, 39, 0.994), + (4, 28, 1.25), + (4, 29, 0.42), + (4, 39, 0.017), + (5, 17, 9.94), + (5, 28, 50), + (5, 29, 49.4), + (5, 39, 0.994), + (6, 17, 9.94), + (6, 28, 50), + (6, 29, 49.4), + (6, 39, 0.994), + (7, 15, 0.0199), + (7, 17, 0.35), + (7, 28, 5), + (7, 29, 2), + (7, 39, 0.07), + (8, 15, 0.0199), + (8, 17, 0.084), + (8, 28, 1.25), + (8, 29, 0.42), + (8, 39, 0.017), + (9, 15, 3.0949), + (9, 21, 0.001), + (9, 28, 53), + (9, 29, 46.4), + (9, 39, 0.994), + (10, 15, 0.0199), + (10, 28, 7), + (10, 29, 0), + (10, 39, 0.07), + (11, 15, 3.0949), + (11, 21, 0.001), + (11, 28, 53), + (11, 29, 46.4), + (11, 39, 0.994), + (12, 15, 0.0199), + (12, 21, 0.003), + (12, 28, 2.25), + (12, 29, -0.58), + (12, 39, 0.017), + (13, 15, 0.114), + (13, 28, 5), + (13, 29, 2), + (13, 39, 0.07), + (14, 15, 3.0949), + (14, 28, 50), + (14, 29, 49.4), + (14, 39, 0.994), + (15, 15, 3.0949), + (15, 28, 50), + (15, 29, 49.4), + (15, 39, 0.994), + (16, 28, 5), + (16, 29, 2), + (16, 39, 0.07), + (17, 28, 5), + (17, 29, 2), + (17, 39, 0.07), + (18, 28, 1.25), + (18, 29, 0.42), + (18, 39, 0.017), + (19, 17, 0.7), + (19, 22, 0.3), + (19, 28, 5), + (19, 29, 2), + (19, 39, 0.02), + (20, 17, 0.7), + (20, 22, 0.3), + (20, 28, 5), + (20, 29, 2), + (20, 39, 0.02), + (21, 17, 0.7), + (21, 22, 0.3), + (21, 28, 5), + (21, 29, 2), + (21, 39, 0.02), + (22, 17, 0.7), + (22, 22, 0.3), + (22, 28, 5), + (22, 29, 2), + (22, 39, 0.02), + (23, 17, 0.7), + (23, 22, 0.3), + (23, 28, 5), + (23, 29, 2), + (23, 39, 0.02), + (24, 17, 0.7), + (24, 22, 0.3), + (24, 28, 5), + (24, 29, 2), + (24, 39, 0.02), + (25, 17, 0.033), + (25, 28, 1.25), + (25, 29, 0.42), + (25, 39, 0.017), + (26, 17, 0.033), + (26, 28, 1.25), + (26, 29, 0.42), + (26, 39, 0.017), + (27, 17, 0.033), + (27, 28, 1.25), + (27, 29, 0.42), + (27, 39, 0.017), + (28, 17, 0.033), + (28, 28, 1.25), + (28, 29, 0.42), + (28, 39, 0.017), + (29, 17, 0.033), + (29, 28, 1.25), + (29, 29, 0.42), + (29, 39, 0.017), + (30, 17, 0.033), + (30, 28, 1.25), + (30, 29, 0.42), + (30, 39, 0.017), + (31, 28, 5), + (31, 29, 2), + (31, 36, 0.01), + (31, 39, 0.07), + (32, 28, 50), + (32, 29, 49.4), + (32, 36, -92.324), + (32, 39, 0.994); INSERT INTO `vn`.`itemShelving` (`itemFk`, `shelvingFk`, `visible`, `grouping`, `packing`,`buyFk`, `userFk`) - VALUES - (2, 11, 1, 1, 1, 2,1106), - (4, 12, 1, 1, 1, NULL,1106), - (1, 13, 2, 12, 12, NULL,1106); + VALUES + (2, 11, 1, 1, 1, 2,1106), + (4, 12, 1, 1, 1, NULL,1106), + (1, 13, 2, 12, 12, NULL,1106); INSERT INTO `vn`.`itemShelvingSale` (`itemShelvingFk`, `saleFk`, `quantity`, `created`, `userFk`) - VALUES - ('1', '1', '1', util.VN_CURDATE(), '1106'), - ('2', '2', '5', util.VN_CURDATE(), '1106'), - ('1', '7', '1', util.VN_CURDATE(), '1106'), - ('2', '8', '5', util.VN_CURDATE(), '1106'); + VALUES + ('1', '1', '1', util.VN_CURDATE(), '1106'), + ('2', '2', '5', util.VN_CURDATE(), '1106'), + ('1', '7', '1', util.VN_CURDATE(), '1106'), + ('2', '8', '5', util.VN_CURDATE(), '1106'); INSERT INTO `vn`.`saleTracking`(`saleFk`, `isChecked`, `created`, `originalQuantity`, `workerFk`, `id`, `stateFk`) - VALUES - (1, 0, util.VN_CURDATE(), 5, 55, 1, 14), - (1, 1, util.VN_CURDATE(), 5, 54, 2, 8), - (2, 1, util.VN_CURDATE(), 10, 40, 3, 8), - (3, 1, util.VN_CURDATE(), 2, 40, 4, 8), - (31, 1, util.VN_CURDATE(), -5, 40, 5, 8); + VALUES + (1, 0, util.VN_CURDATE(), 5, 55, 1, 14), + (1, 1, util.VN_CURDATE(), 5, 54, 2, 8), + (2, 1, util.VN_CURDATE(), 10, 40, 3, 8), + (3, 1, util.VN_CURDATE(), 2, 40, 4, 8), + (31, 1, util.VN_CURDATE(), -5, 40, 5, 8); INSERT INTO `vn`.`itemBarcode`(`id`, `itemFk`, `code`) - VALUES - (1, 1, 1111111111), - (2, 1, 2222222222), - (3, 1, 3333333333), - (4, 2, 4444444444); + VALUES + (1, 1, 1111111111), + (2, 1, 2222222222), + (3, 1, 3333333333), + (4, 2, 4444444444); INSERT INTO `vn`.`train`(`id`, `name`) - VALUES - (1, 'Train1'), - (2, 'Train2'); + VALUES + (1, 'Train1'), + (2, 'Train2'); INSERT INTO `vn`.`operator` (`workerFk`, `numberOfWagons`, `trainFk`, `itemPackingTypeFk`, `warehouseFk`, `sectorFk`, `labelerFk`) - VALUES - ('1106', '1', '1', 'H', '1', '1', '1'), - ('9', '2', '1', 'H', '1', '1', '1'), + VALUES + ('1106', '1', '1', 'H', '1', '1', '1'), + ('9', '2', '1', 'H', '1', '1', '1'), ('1107', '1', '1', 'V', '1', '1', '1'); INSERT INTO `vn`.`collection`(`id`, `workerFk`, `stateFk`, `created`, `trainFk`) - VALUES - (1, 1106, 5, DATE_ADD(util.VN_CURDATE(),INTERVAL +1 DAY), 1), - (2, 1106, 14, util.VN_CURDATE(), 1), - (4, 49, 5, util.VN_CURDATE(), 1), - (5, 18, 5, util.VN_CURDATE(), 1), - (6, 18, 5, util.VN_CURDATE(), 1); + VALUES + (1, 1106, 5, DATE_ADD(util.VN_CURDATE(),INTERVAL +1 DAY), 1), + (2, 1106, 14, util.VN_CURDATE(), 1), + (4, 49, 5, util.VN_CURDATE(), 1), + (5, 18, 5, util.VN_CURDATE(), 1), + (6, 18, 5, util.VN_CURDATE(), 1); INSERT INTO `vn`.`ticketCollection`(`ticketFk`, `collectionFk`, `level`) - VALUES - (1, 1, 1), - (2, 1, NULL), - (3, 2, NULL), - (23, 1, NULL), - (34, 4, 1), - (35, 5, 1), - (8, 6, 1); + VALUES + (1, 1, 1), + (2, 1, NULL), + (3, 2, NULL), + (23, 1, NULL), + (34, 4, 1), + (35, 5, 1), + (8, 6, 1); INSERT INTO `vn`.`genus`(`id`, `name`) - VALUES - (1, 'Abelia'), - (2, 'Abies'), - (3, 'Abutilon'); + VALUES + (1, 'Abelia'), + (2, 'Abies'), + (3, 'Abutilon'); INSERT INTO `vn`.`specie`(`id`, `name`) - VALUES - (1, 'grandiflora'), - (2, 'procera'), - (3, 'decurrens'), - (4, 'dealbata'); + VALUES + (1, 'grandiflora'), + (2, 'procera'), + (3, 'decurrens'), + (4, 'dealbata'); INSERT INTO `vn`.`itemBotanical`(`itemFk`, `genusFk`, `specieFk`) - VALUES - (1, 1, 1), - (2, 2, 2), - (3, 2, NULL), - (4, 2, 1); + VALUES + (1, 1, 1), + (2, 2, 2), + (3, 2, NULL), + (4, 2, 1); INSERT INTO `vn`.`tag`(`id`, `code`, `name`, `isFree`, `isQuantitatif`, `sourceTable`, `unit`, `ediTypeFk`, `overwrite`) - VALUES - (1, 'color', 'Color', 0, 0, 'ink', NULL, NULL, 'inkFk'), - (2, NULL, 'Forma', 1, 0, NULL, NULL,NULL, NULL), - (3, NULL, 'Material', 1, 0, NULL, NULL,NULL, NULL), - (4, NULL, 'Longitud', 1, 1, NULL, 'mm', NULL, 'size'), - (5, NULL, 'Diámetro', 1, 1, NULL, 'mm',NULL, 'diameter'), - (7, NULL, 'Ancho de la base', 1, 1, NULL, 'mm',NULL, NULL), - (23, 'stems', 'Tallos', 1, 1, NULL, NULL, NULL, 'stems'), - (27, NULL, 'Longitud(cm)', 1, 1, NULL, 'cm', NULL, 'size'), - (36, 'producer', 'Proveedor', 1, 0, NULL, NULL, NULL, 'producer'), - (56, NULL, 'Genero', 1, 0, NULL, NULL, NULL, NULL), - (58, NULL, 'Variedad', 1, 0, NULL, NULL, NULL, NULL), - (67, 'category', 'Categoria', 1, 0, NULL, NULL, NULL, NULL), - (92, NULL, 'Nombre temporal', 1, 0, NULL, NULL, NULL, NULL); + VALUES + (1, 'color', 'Color', 0, 0, 'ink', NULL, NULL, 'inkFk'), + (2, NULL, 'Forma', 1, 0, NULL, NULL,NULL, NULL), + (3, NULL, 'Material', 1, 0, NULL, NULL,NULL, NULL), + (4, NULL, 'Longitud', 1, 1, NULL, 'mm', NULL, 'size'), + (5, NULL, 'Diámetro', 1, 1, NULL, 'mm',NULL, 'diameter'), + (7, NULL, 'Ancho de la base', 1, 1, NULL, 'mm',NULL, NULL), + (23, 'stems', 'Tallos', 1, 1, NULL, NULL, NULL, 'stems'), + (27, NULL, 'Longitud(cm)', 1, 1, NULL, 'cm', NULL, 'size'), + (36, 'producer', 'Proveedor', 1, 0, NULL, NULL, NULL, 'producer'), + (56, NULL, 'Genero', 1, 0, NULL, NULL, NULL, NULL), + (58, NULL, 'Variedad', 1, 0, NULL, NULL, NULL, NULL), + (67, 'category', 'Categoria', 1, 0, NULL, NULL, NULL, NULL), + (92, NULL, 'Nombre temporal', 1, 0, NULL, NULL, NULL, NULL); INSERT INTO `vn`.`itemTag`(`id`,`itemFk`,`tagFk`,`value`,`priority`) - VALUES - (1, 1, 56, 'Ranged weapon', 1), - (2, 1, 58, 'longbow', 2), - (3, 1, 27, '200cm', 3), - (4, 1, 36, 'Stark Industries', 4), - (5, 1, 1, 'Brown', 5), - (6, 1, 67, '+1 precission', 6), - (7, 1, 23, '1', 7), - (8, 2, 56, 'Melee weapon', 1), - (9, 2, 58, 'combat fist', 2), - (10, 2, 27, '15cm', 3), - (11, 2, 36, 'Stark Industries', 4), - (12, 2, 1, 'Silver', 5), - (13, 2, 67, 'Concussion', 6), - (14, 2, 23, '2', 7), - (15, 3, 56, 'Ranged weapon', 1), - (16, 3, 58, 'sniper rifle', 2), - (17, 3, 4, '113cm', 3), - (18, 3, 36, 'Stark Industries', 4), - (19, 3, 1, 'Green', 5), - (20, 3, 67, 'precission', 6), - (21, 3, 23, '3', 7), - (22, 4, 56, 'Melee weapon', 1), - (23, 4, 58, 'heavy shield', 2), - (24, 4, 4, '100cm', 3), - (25, 4, 36, 'Stark Industries', 4), - (26, 4, 1, 'Black', 5), - (27, 4, 67, 'containtment', 6), - (28, 4, 23, '4', 7), - (29, 5, 56, 'Ranged weapon', 1), - (30, 5, 58, 'pistol', 2), - (31, 5, 67, '9mm', 3), - (32, 5, 36, 'Stark Industries', 4), - (33, 5, 1, 'Silver', 5), - (34, 5, 27, '15cm', 6), - (35, 5, 23, '5', 7), - (36, 6, 56, 'Container', 1), - (37, 6, 58, 'ammo box', 2), - (38, 6, 27, '100cm', 3), - (39, 6, 36, 'Stark Industries', 4), - (40, 6, 1, 'Green', 5), - (41, 6, 67, 'supply', 6), - (42, 6, 23, '6', 7), - (43, 7, 56, 'Container', 1), - (44, 7, 58, 'medical box', 2), - (45, 7, 27, '100cm', 3), - (46, 7, 36, 'Stark Industries', 4), - (47, 7, 1, 'White', 5), - (48, 7, 67, 'supply', 6), - (49, 7, 23, '7', 7), - (50, 8, 56, 'Ranged Reinforced weapon', 1), - (51, 8, 58, '+1 longbow', 2), - (52, 8, 27, '200cm', 3), - (53, 8, 36, 'Stark Industries', 4), - (54, 8, 1, 'Brown', 5), - (55, 8, 67, 'precission', 6), - (56, 8, 23, '8', 7), - (57, 9, 56, 'Melee Reinforced weapon', 1), - (58, 9, 58, 'combat fist', 2), - (59, 9, 27, '15cm', 3), - (60, 9, 36, 'Stark Industries', 4), - (61, 9, 1, 'Silver', 5), - (62, 9, 67, 'Concussion', 6), - (63, 9, 23, '9', 7), - (64, 10, 56, 'Ranged Reinforced weapon', 1), - (65, 10, 58, 'sniper rifle', 2), - (66, 10, 67, '700mm', 3), - (67, 10, 36, 'Stark Industries', 4), - (68, 10, 1, 'Green', 5), - (69, 10, 27, '130cm', 6), - (70, 10, 23, '10', 7), - (71, 11, 56, 'Melee Reinforced weapon', 1), - (72, 11, 58, 'heavy shield', 2), - (73, 11, 4, '120cm', 3), - (74, 11, 36, 'Stark Industries', 4), - (75, 11, 1, 'Black', 5), - (76, 11, 67, 'containtment', 6), - (77, 11, 23, '11', 7), - (78, 12, 56, 'Ranged Reinforced weapon', 1), - (79, 12, 58, 'pistol', 2), - (80, 12, 27, '9mm', 3), - (81, 12, 36, 'Stark Industries', 4), - (82, 12, 1, 'Silver', 5), - (83, 12, 67, '23cm', 6), - (84, 12, 23, '12', 7), - (85, 13, 56, 'Chest', 1), - (86, 13, 58, 'ammo box', 2), - (87, 13, 27, '100cm', 3), - (88, 13, 36, 'Stark Industries', 4), - (89, 13, 1, 'Green', 5), - (90, 13, 67, 'supply', 6), - (91, 13, 23, '13', 7), - (92, 14, 56, 'Chest', 1), - (93, 14, 58, 'medical box', 2), - (94, 14, 27, '100cm', 3), - (95, 14, 36, 'Stark Industries', 4), - (96, 14, 1, 'White', 5), - (97, 14, 67, 'supply', 6), - (98, 14, 23, '1', 7), - (99, 15, 92, 'Trolley', 2), - (100, 16, 92, 'Pallet', 2), - (101, 71, 92, 'Shipping cost', 2); + VALUES + (1, 1, 56, 'Ranged weapon', 1), + (2, 1, 58, 'longbow', 2), + (3, 1, 27, '200cm', 3), + (4, 1, 36, 'Stark Industries', 4), + (5, 1, 1, 'Brown', 5), + (6, 1, 67, '+1 precission', 6), + (7, 1, 23, '1', 7), + (8, 2, 56, 'Melee weapon', 1), + (9, 2, 58, 'combat fist', 2), + (10, 2, 27, '15cm', 3), + (11, 2, 36, 'Stark Industries', 4), + (12, 2, 1, 'Silver', 5), + (13, 2, 67, 'Concussion', 6), + (14, 2, 23, '2', 7), + (15, 3, 56, 'Ranged weapon', 1), + (16, 3, 58, 'sniper rifle', 2), + (17, 3, 4, '113cm', 3), + (18, 3, 36, 'Stark Industries', 4), + (19, 3, 1, 'Green', 5), + (20, 3, 67, 'precission', 6), + (21, 3, 23, '3', 7), + (22, 4, 56, 'Melee weapon', 1), + (23, 4, 58, 'heavy shield', 2), + (24, 4, 4, '100cm', 3), + (25, 4, 36, 'Stark Industries', 4), + (26, 4, 1, 'Black', 5), + (27, 4, 67, 'containtment', 6), + (28, 4, 23, '4', 7), + (29, 5, 56, 'Ranged weapon', 1), + (30, 5, 58, 'pistol', 2), + (31, 5, 67, '9mm', 3), + (32, 5, 36, 'Stark Industries', 4), + (33, 5, 1, 'Silver', 5), + (34, 5, 27, '15cm', 6), + (35, 5, 23, '5', 7), + (36, 6, 56, 'Container', 1), + (37, 6, 58, 'ammo box', 2), + (38, 6, 27, '100cm', 3), + (39, 6, 36, 'Stark Industries', 4), + (40, 6, 1, 'Green', 5), + (41, 6, 67, 'supply', 6), + (42, 6, 23, '6', 7), + (43, 7, 56, 'Container', 1), + (44, 7, 58, 'medical box', 2), + (45, 7, 27, '100cm', 3), + (46, 7, 36, 'Stark Industries', 4), + (47, 7, 1, 'White', 5), + (48, 7, 67, 'supply', 6), + (49, 7, 23, '7', 7), + (50, 8, 56, 'Ranged Reinforced weapon', 1), + (51, 8, 58, '+1 longbow', 2), + (52, 8, 27, '200cm', 3), + (53, 8, 36, 'Stark Industries', 4), + (54, 8, 1, 'Brown', 5), + (55, 8, 67, 'precission', 6), + (56, 8, 23, '8', 7), + (57, 9, 56, 'Melee Reinforced weapon', 1), + (58, 9, 58, 'combat fist', 2), + (59, 9, 27, '15cm', 3), + (60, 9, 36, 'Stark Industries', 4), + (61, 9, 1, 'Silver', 5), + (62, 9, 67, 'Concussion', 6), + (63, 9, 23, '9', 7), + (64, 10, 56, 'Ranged Reinforced weapon', 1), + (65, 10, 58, 'sniper rifle', 2), + (66, 10, 67, '700mm', 3), + (67, 10, 36, 'Stark Industries', 4), + (68, 10, 1, 'Green', 5), + (69, 10, 27, '130cm', 6), + (70, 10, 23, '10', 7), + (71, 11, 56, 'Melee Reinforced weapon', 1), + (72, 11, 58, 'heavy shield', 2), + (73, 11, 4, '120cm', 3), + (74, 11, 36, 'Stark Industries', 4), + (75, 11, 1, 'Black', 5), + (76, 11, 67, 'containtment', 6), + (77, 11, 23, '11', 7), + (78, 12, 56, 'Ranged Reinforced weapon', 1), + (79, 12, 58, 'pistol', 2), + (80, 12, 27, '9mm', 3), + (81, 12, 36, 'Stark Industries', 4), + (82, 12, 1, 'Silver', 5), + (83, 12, 67, '23cm', 6), + (84, 12, 23, '12', 7), + (85, 13, 56, 'Chest', 1), + (86, 13, 58, 'ammo box', 2), + (87, 13, 27, '100cm', 3), + (88, 13, 36, 'Stark Industries', 4), + (89, 13, 1, 'Green', 5), + (90, 13, 67, 'supply', 6), + (91, 13, 23, '13', 7), + (92, 14, 56, 'Chest', 1), + (93, 14, 58, 'medical box', 2), + (94, 14, 27, '100cm', 3), + (95, 14, 36, 'Stark Industries', 4), + (96, 14, 1, 'White', 5), + (97, 14, 67, 'supply', 6), + (98, 14, 23, '1', 7), + (99, 15, 92, 'Trolley', 2), + (100, 16, 92, 'Pallet', 2), + (101, 71, 92, 'Shipping cost', 2); INSERT INTO `vn`.`itemTypeTag`(`id`, `itemTypeFk`, `tagFk`, `priority`) - VALUES - (1, 1, 1, 0), - (2, 2, 2, 0), - (3, 3, 3, 0), - (4, 1, 4, 4), - (5, 1, 5, 5); + VALUES + (1, 1, 1, 0), + (2, 2, 2, 0), + (3, 3, 3, 0), + (4, 1, 4, 4), + (5, 1, 5, 5); CALL `vn`.`itemRefreshTags`(NULL); INSERT INTO `vn`.`itemLog` (`id`, `originFk`, `userFk`, `action`, `description`, `changedModel`, `oldInstance`, `newInstance`, `changedModelId`, `changedModelValue`) - VALUES - ('1', '1', '1', 'insert', 'We made a change!', 'Item', '{}', '{}', 1, '1'); + VALUES + ('1', '1', '1', 'insert', 'We made a change!', 'Item', '{}', '{}', 1, '1'); INSERT INTO `vn`.`recovery`(`id`, `clientFk`, `started`, `finished`, `amount`, `period`) - VALUES - (1, 1101, DATE_ADD(util.VN_CURDATE(),INTERVAL -7 MONTH), DATE_ADD(util.VN_CURDATE(),INTERVAL -3 MONTH), 50, 7), - (2, 1102, DATE_ADD(util.VN_CURDATE(),INTERVAL -5 MONTH), util.VN_CURDATE(), 100, 1), - (3, 1102, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(),INTERVAL 1 MONTH), 50, 7), - (4, 1103, util.VN_CURDATE(), NULL, 50, 7); + VALUES + (1, 1101, DATE_ADD(util.VN_CURDATE(),INTERVAL -7 MONTH), DATE_ADD(util.VN_CURDATE(),INTERVAL -3 MONTH), 50, 7), + (2, 1102, DATE_ADD(util.VN_CURDATE(),INTERVAL -5 MONTH), util.VN_CURDATE(), 100, 1), + (3, 1102, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(),INTERVAL 1 MONTH), 50, 7), + (4, 1103, util.VN_CURDATE(), NULL, 50, 7); INSERT INTO `bs`.`clientAnnualConsumption`(`clientFk`, `invoiced`) - VALUES - (1101, 1500), - (1102, 100), - (1103, 1000), - (1104, 500), - (1105, 5000); + VALUES + (1101, 1500), + (1102, 100), + (1103, 1000), + (1104, 500), + (1105, 5000); INSERT INTO `cache`.`cache_calc`(`id`, `cache_id`, `cacheName`, `params`, `last_refresh`, `expires`, `created`, `connection_id`) - VALUES - (1, 2, 'available', CONCAT_WS('/',1,util.VN_CURDATE()), util.VN_NOW(), DATE_ADD(util.VN_NOW(),INTERVAL 15 MINUTE), util.VN_CURDATE(), NULL), - (2, 4, 'last_buy', CONCAT_WS('/',1,util.VN_CURDATE()), util.VN_NOW(), DATE_ADD(util.VN_NOW(),INTERVAL 15 MINUTE), util.VN_CURDATE(), NULL), - (3, 8, 'visible', CONCAT_WS('/',1,util.VN_CURDATE()), util.VN_NOW(), DATE_ADD(util.VN_NOW(),INTERVAL 15 MINUTE), util.VN_CURDATE(), NULL); + VALUES + (1, 2, 'available', CONCAT_WS('/',1,util.VN_CURDATE()), util.VN_NOW(), DATE_ADD(util.VN_NOW(),INTERVAL 15 MINUTE), util.VN_CURDATE(), NULL), + (2, 4, 'last_buy', CONCAT_WS('/',1,util.VN_CURDATE()), util.VN_NOW(), DATE_ADD(util.VN_NOW(),INTERVAL 15 MINUTE), util.VN_CURDATE(), NULL), + (3, 8, 'visible', CONCAT_WS('/',1,util.VN_CURDATE()), util.VN_NOW(), DATE_ADD(util.VN_NOW(),INTERVAL 15 MINUTE), util.VN_CURDATE(), NULL); INSERT INTO `vn`.`ticketWeekly`(`ticketFk`, `weekDay`) - VALUES - (2, 1), - (3, 2), - (5, 6), - (15, 6), - (17, 6); + VALUES + (2, 1), + (3, 2), + (5, 6), + (15, 6), + (17, 6); INSERT INTO `vn`.`awb` (id, code, package, weight, created, amount, transitoryFk, taxFk) - VALUES - (1, '07546501420', 67, 671, util.VN_CURDATE(), 1761, 1, 1), - (2, '07546491421', 252, 2769, util.VN_CURDATE(), 5231, 1, 1), - (3, '07546500823', 102, 1495, util.VN_CURDATE(), 3221, 1, 1), - (4, '99610288821', 252, 2777, util.VN_CURDATE(), 3641, 1, 1), - (5, '07546500834', 229, 3292, util.VN_CURDATE(), 6601, 2, 1), - (6, '22101929561', 37, 458, util.VN_CURDATE(), 441, 2, 1), - (7, '07546491432', 258, 3034, util.VN_CURDATE(), 6441, 2, 1), - (8, '99610288644', 476, 4461, util.VN_CURDATE(), 5751, 442, 1), - (9, '99610289193', 302, 2972, util.VN_CURDATE(), 3871, 442, 1), - (10, '07546500856', 185, 2364, util.VN_CURDATE(), 5321, 442, 1); + VALUES + (1, '07546501420', 67, 671, util.VN_CURDATE(), 1761, 1, 1), + (2, '07546491421', 252, 2769, util.VN_CURDATE(), 5231, 1, 1), + (3, '07546500823', 102, 1495, util.VN_CURDATE(), 3221, 1, 1), + (4, '99610288821', 252, 2777, util.VN_CURDATE(), 3641, 1, 1), + (5, '07546500834', 229, 3292, util.VN_CURDATE(), 6601, 2, 1), + (6, '22101929561', 37, 458, util.VN_CURDATE(), 441, 2, 1), + (7, '07546491432', 258, 3034, util.VN_CURDATE(), 6441, 2, 1), + (8, '99610288644', 476, 4461, util.VN_CURDATE(), 5751, 442, 1), + (9, '99610289193', 302, 2972, util.VN_CURDATE(), 3871, 442, 1), + (10, '07546500856', 185, 2364, util.VN_CURDATE(), 5321, 442, 1); INSERT INTO `vn`.`travel`(`id`,`shipped`, `landed`, `warehouseInFk`, `warehouseOutFk`, `agencyModeFk`, `m3`, `kg`,`ref`, `totalEntries`, `cargoSupplierFk`, `awbFK`, `isRaid`, `daysInForward`) - VALUES (1, DATE_ADD(util.VN_CURDATE(), INTERVAL -2 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL -2 MONTH), 1, 2, 1, 100.00, 1000, 'first travel', 1, 1, 1, FALSE, NULL), - (2, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 1, 2, 1, 150.00, 2000, 'second travel', 2, 2, 2, FALSE, NULL), - (3, util.VN_CURDATE(), util.VN_CURDATE(), 1, 2, 1, 0.00, 0.00, 'third travel', 1, 1, 3, FALSE, NULL), - (4, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 1, 3, 1, 50.00, 500, 'fourth travel', 0, 2, 4, FALSE, NULL), - (5, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 3, 3, 1, 50.00, 500, 'fifth travel', 1, 1, 5, FALSE, NULL), - (6, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 4, 4, 1, 50.00, 500, 'sixth travel', 1, 2, 6, FALSE,NULL), - (7, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 5, 4, 1, 50.00, 500, 'seventh travel', 2, 1, 7, TRUE, 2), - (8, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 5, 1, 1, 50.00, 500, 'eight travel', 1, 2, 10, FALSE, NULL), - (10, DATE_ADD(util.VN_CURDATE(), INTERVAL +5 DAY), DATE_ADD(util.VN_CURDATE(), INTERVAL +5 DAY), 5, 1, 1, 50.00, 500, 'nineth travel', 1, 2, 10, TRUE, 2), - (11, util.VN_CURDATE() - INTERVAL 1 DAY , util.VN_CURDATE(), 6, 3, 0, 50.00, 500, 'eleventh travel', 1, 2, 4, FALSE, NULL), - (12, util.VN_CURDATE() , util.VN_CURDATE() + INTERVAL 1 DAY, 6, 3, 0, 50.00, 500, 'eleventh travel', 1, 2, 4, FALSE, NULL); + VALUES (1, DATE_ADD(util.VN_CURDATE(), INTERVAL -2 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL -2 MONTH), 1, 2, 1, 100.00, 1000, 'first travel', 1, 1, 1, FALSE, NULL), + (2, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 1, 2, 1, 150.00, 2000, 'second travel', 2, 2, 2, FALSE, NULL), + (3, util.VN_CURDATE(), util.VN_CURDATE(), 1, 2, 1, 0.00, 0.00, 'third travel', 1, 1, 3, FALSE, NULL), + (4, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 1, 3, 1, 50.00, 500, 'fourth travel', 0, 2, 4, FALSE, NULL), + (5, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 3, 3, 1, 50.00, 500, 'fifth travel', 1, 1, 5, FALSE, NULL), + (6, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 4, 4, 1, 50.00, 500, 'sixth travel', 1, 2, 6, FALSE,NULL), + (7, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 5, 4, 1, 50.00, 500, 'seventh travel', 2, 1, 7, TRUE, 2), + (8, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 5, 1, 1, 50.00, 500, 'eight travel', 1, 2, 10, FALSE, NULL), + (10, DATE_ADD(util.VN_CURDATE(), INTERVAL +5 DAY), DATE_ADD(util.VN_CURDATE(), INTERVAL +5 DAY), 5, 1, 1, 50.00, 500, 'nineth travel', 1, 2, 10, TRUE, 2), + (11, util.VN_CURDATE() - INTERVAL 1 DAY , util.VN_CURDATE(), 6, 3, 0, 50.00, 500, 'eleventh travel', 1, 2, 4, FALSE, NULL), + (12, util.VN_CURDATE() , util.VN_CURDATE() + INTERVAL 1 DAY, 6, 3, 0, 50.00, 500, 'eleventh travel', 1, 2, 4, FALSE, NULL); INSERT INTO `vn`.`entry`(`id`, `supplierFk`, `created`, `travelFk`, `isConfirmed`, `companyFk`, `invoiceNumber`, `reference`, `isExcludedFromAvailable`, `evaNotes`, `typeFk`) VALUES @@ -1530,548 +1530,548 @@ INSERT INTO `vn`.`entry`(`id`, `supplierFk`, `created`, `travelFk`, `isConfirmed (8, 2, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 7, 0, 442, 'IN2008', 'Movement 8', 1, '', 'product'), (9, 2, DATE_ADD(util.VN_CURDATE(), INTERVAL +2 DAY), 10, 0, 442, 'IN2009', 'Movement 9', 1, '', 'product'), (10, 2, DATE_ADD(util.VN_CURDATE(), INTERVAL +2 DAY), 10, 0, 442, 'IN2009', 'Movement 10',1, '', 'product'), - (11, 4, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 1, 1, 442, 'IN2001', 'Movement 11',0, '', 'product'), + (11, 4, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 1, 1, 442, 'IN2001', 'Movement 11',0, '', 'product'), (99, 69, util.VN_CURDATE() - INTERVAL 1 MONTH, 11, 0, 442, 'IN2009', 'Movement 99',0, '', 'product'); INSERT INTO `vn`.`entryConfig` (`defaultEntry`, `inventorySupplierFk`, `defaultSupplierFk`) VALUES (2, 4, 1); INSERT INTO `bs`.`waste`(`buyerFk`, `year`, `week`, `itemFk`, `itemTypeFk`, `saleTotal`, `saleWasteQuantity`, `saleExternalWaste`, `saleFaultWaste`, `saleContainerWaste`, `saleBreakWaste`, `saleOtherWaste`) - VALUES - ('35', YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK)), WEEK(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK), 1), 1, 1, '1062', '51', '56.20', '56.20', '56.20', '56.20', '56.20'), - ('35', YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK)), WEEK(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK), 1), 2, 1, '35074', '687', '53.12', '89.69', '56.20', '56.20', '56.20'), - ('35', YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK)), WEEK(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK), 1), 3, 1, '1777', '13', '12.02', '53.12', '56.20', '56.20', '56.20'), - ('35', YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK)), WEEK(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK), 1), 4, 1, '3182', '59', '51', '56.20', '56.20', '56.20', '56.20'), - ('35', YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK)), WEEK(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK), 1), 5, 1, '1747', '13', '53.12', '53.12', '56.20', '56.20', '56.20'), - ('35', YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK)), WEEK(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK), 1), 6, 1, '7182', '59', '51', '53.12', '56.20', '56.20', '56.20'), - ('35', YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK)), WEEK(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK), 1), 7, 1, '1777', '13', '89.69', '89.69', '56.20', '56.20', '56.20'), - ('35', YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK)), WEEK(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK), 1), 8, 1, '4181', '59', '53.12', '53.12', '56.20', '56.20', '56.20'), - ('35', YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK)), WEEK(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK), 1), 9, 1, '7268', '59', '12.02', '56.20', '56.20', '56.20', '56.20'), - ('103', YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK)), WEEK(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK), 1), 2, 1, '-74', '0', '51', '89.69', '56.20', '56.20', '56.20'), - ('103', YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK)), WEEK(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK), 1), 3, 1, '-7', '0', '12.02', '53.12', '56.20', '56.20', '56.20'), - ('103', YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK)), WEEK(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK), 1), 4, 1, '1100', '0', '51', '56.20', '56.20', '56.20', '56.20'), - ('103', YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK)), WEEK(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK), 1), 5, 1, '848', '-187', '12.02', '89.69', '56.20', '56.20', '56.20'), - ('103', YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK)), WEEK(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK), 1), 6, 1, '186', '0', '51', '53.12', '56.20', '56.20', '56.20'), - ('103', YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK)), WEEK(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK), 1), 7, 1, '277', '0', '53.12', '56.20', '56.20', '56.20', '56.20'); + VALUES + ('35', YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK)), WEEK(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK), 1), 1, 1, '1062', '51', '56.20', '56.20', '56.20', '56.20', '56.20'), + ('35', YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK)), WEEK(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK), 1), 2, 1, '35074', '687', '53.12', '89.69', '56.20', '56.20', '56.20'), + ('35', YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK)), WEEK(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK), 1), 3, 1, '1777', '13', '12.02', '53.12', '56.20', '56.20', '56.20'), + ('35', YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK)), WEEK(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK), 1), 4, 1, '3182', '59', '51', '56.20', '56.20', '56.20', '56.20'), + ('35', YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK)), WEEK(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK), 1), 5, 1, '1747', '13', '53.12', '53.12', '56.20', '56.20', '56.20'), + ('35', YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK)), WEEK(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK), 1), 6, 1, '7182', '59', '51', '53.12', '56.20', '56.20', '56.20'), + ('35', YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK)), WEEK(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK), 1), 7, 1, '1777', '13', '89.69', '89.69', '56.20', '56.20', '56.20'), + ('35', YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK)), WEEK(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK), 1), 8, 1, '4181', '59', '53.12', '53.12', '56.20', '56.20', '56.20'), + ('35', YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK)), WEEK(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK), 1), 9, 1, '7268', '59', '12.02', '56.20', '56.20', '56.20', '56.20'), + ('103', YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK)), WEEK(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK), 1), 2, 1, '-74', '0', '51', '89.69', '56.20', '56.20', '56.20'), + ('103', YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK)), WEEK(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK), 1), 3, 1, '-7', '0', '12.02', '53.12', '56.20', '56.20', '56.20'), + ('103', YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK)), WEEK(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK), 1), 4, 1, '1100', '0', '51', '56.20', '56.20', '56.20', '56.20'), + ('103', YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK)), WEEK(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK), 1), 5, 1, '848', '-187', '12.02', '89.69', '56.20', '56.20', '56.20'), + ('103', YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK)), WEEK(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK), 1), 6, 1, '186', '0', '51', '53.12', '56.20', '56.20', '56.20'), + ('103', YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK)), WEEK(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK), 1), 7, 1, '277', '0', '53.12', '56.20', '56.20', '56.20', '56.20'); INSERT INTO vn.buy(id,entryFk,itemFk,buyingValue,quantity,packagingFk,stickers,freightValue,packageValue,comissionValue,packing,grouping,groupingMode,location,price1,price2,price3,printedStickers,isChecked,isIgnored,weight,created) - VALUES - (1, 1, 1, 50, 5000, 4, 1, 1.500, 1.500, 0.000, 1, 1, 'packing', NULL, 0.00, 99.6, 99.4, 0, 1, 0, 1, util.VN_CURDATE() - INTERVAL 2 MONTH), - (2, 2, 1, 50, 100, 4, 1, 1.500, 1.500, 0.000, 1, 1, 'packing', NULL, 0.00, 99.6, 99.4, 0, 1, 0, 1, util.VN_CURDATE() - INTERVAL 1 MONTH), - (3, 3, 1, 50, 100, 4, 1, 1.500, 1.500, 0.000, 1, 1, NULL, NULL, 0.00, 99.6, 99.4, 0, 1, 0, 1, util.VN_CURDATE()), - (4, 2, 2, 5, 450, 3, 1, 1.000, 1.000, 0.000, 10, 10, NULL, NULL, 0.00, 7.30, 7.00, 0, 1, 0, 2.5, util.VN_CURDATE()), - (5, 3, 3, 55, 500, 5, 1, 1.000, 1.000, 0.000, 1, 1, NULL, NULL, 0.00, 78.3, 75.6, 0, 1, 0, 2.5, util.VN_CURDATE()), - (6, 4, 8, 50, 1000, 4, 1, 1.000, 1.000, 0.000, 1, 1, 'grouping', NULL, 0.00, 99.6, 99.4, 0, 1, 0, 2.5, util.VN_CURDATE()), - (7, 4, 9, 20, 1000, 3, 1, 0.500, 0.500, 0.000, 10, 10, 'packing', NULL, 0.00, 30.50, 29.00, 0, 1, 0, 2.5, util.VN_CURDATE()), - (8, 4, 4, 1.25, 1000, 3, 1, 0.500, 0.500, 0.000, 10, 10, 'grouping', NULL, 0.00, 1.75, 1.67, 0, 1, 0, 2.5, util.VN_CURDATE()), - (9, 4, 4, 1.25, 1000, 3, 1, 0.500, 0.500, 0.000, 10, 10, 'grouping', NULL, 0.00, 1.75, 1.67, 0, 1, 0, 4, util.VN_CURDATE()), - (10, 5, 1, 50, 10, 4, 1, 2.500, 2.500, 0.000, 1, 1, 'packing', NULL, 0.00, 99.6, 99.4, 0, 1, 0, 4, util.VN_CURDATE()), - (11, 5, 4, 1.25, 10, 3, 1, 2.500, 2.500, 0.000, 10, 10, 'grouping', NULL, 0.00, 1.75, 1.67, 0, 1, 0, 4, util.VN_CURDATE()), - (12, 6, 4, 1.25, 0, 3, 1, 2.500, 2.500, 0.000, 10, 10, 'grouping', NULL, 0.00, 1.75, 1.67, 0, 1, 0, 4, util.VN_CURDATE()), - (13, 7, 1, 50, 0, 3, 1, 2.000, 2.000, 0.000, 1, 1, 'packing', NULL, 0.00, 99.6, 99.4, 0, 1, 0, 4, util.VN_CURDATE()), - (14, 7, 2, 5, 0, 3, 1, 2.000, 2.000, 0.000, 10, 10, 'grouping', NULL, 0.00, 7.30, 7.00, 0, 1, 0, 4, util.VN_CURDATE()), + VALUES + (1, 1, 1, 50, 5000, 4, 1, 1.500, 1.500, 0.000, 1, 1, 'packing', NULL, 0.00, 99.6, 99.4, 0, 1, 0, 1, util.VN_CURDATE() - INTERVAL 2 MONTH), + (2, 2, 1, 50, 100, 4, 1, 1.500, 1.500, 0.000, 1, 1, 'packing', NULL, 0.00, 99.6, 99.4, 0, 1, 0, 1, util.VN_CURDATE() - INTERVAL 1 MONTH), + (3, 3, 1, 50, 100, 4, 1, 1.500, 1.500, 0.000, 1, 1, NULL, NULL, 0.00, 99.6, 99.4, 0, 1, 0, 1, util.VN_CURDATE()), + (4, 2, 2, 5, 450, 3, 1, 1.000, 1.000, 0.000, 10, 10, NULL, NULL, 0.00, 7.30, 7.00, 0, 1, 0, 2.5, util.VN_CURDATE()), + (5, 3, 3, 55, 500, 5, 1, 1.000, 1.000, 0.000, 1, 1, NULL, NULL, 0.00, 78.3, 75.6, 0, 1, 0, 2.5, util.VN_CURDATE()), + (6, 4, 8, 50, 1000, 4, 1, 1.000, 1.000, 0.000, 1, 1, 'grouping', NULL, 0.00, 99.6, 99.4, 0, 1, 0, 2.5, util.VN_CURDATE()), + (7, 4, 9, 20, 1000, 3, 1, 0.500, 0.500, 0.000, 10, 10, 'packing', NULL, 0.00, 30.50, 29.00, 0, 1, 0, 2.5, util.VN_CURDATE()), + (8, 4, 4, 1.25, 1000, 3, 1, 0.500, 0.500, 0.000, 10, 10, 'grouping', NULL, 0.00, 1.75, 1.67, 0, 1, 0, 2.5, util.VN_CURDATE()), + (9, 4, 4, 1.25, 1000, 3, 1, 0.500, 0.500, 0.000, 10, 10, 'grouping', NULL, 0.00, 1.75, 1.67, 0, 1, 0, 4, util.VN_CURDATE()), + (10, 5, 1, 50, 10, 4, 1, 2.500, 2.500, 0.000, 1, 1, 'packing', NULL, 0.00, 99.6, 99.4, 0, 1, 0, 4, util.VN_CURDATE()), + (11, 5, 4, 1.25, 10, 3, 1, 2.500, 2.500, 0.000, 10, 10, 'grouping', NULL, 0.00, 1.75, 1.67, 0, 1, 0, 4, util.VN_CURDATE()), + (12, 6, 4, 1.25, 0, 3, 1, 2.500, 2.500, 0.000, 10, 10, 'grouping', NULL, 0.00, 1.75, 1.67, 0, 1, 0, 4, util.VN_CURDATE()), + (13, 7, 1, 50, 0, 3, 1, 2.000, 2.000, 0.000, 1, 1, 'packing', NULL, 0.00, 99.6, 99.4, 0, 1, 0, 4, util.VN_CURDATE()), + (14, 7, 2, 5, 0, 3, 1, 2.000, 2.000, 0.000, 10, 10, 'grouping', NULL, 0.00, 7.30, 7.00, 0, 1, 0, 4, util.VN_CURDATE()), (15, 7, 4, 1.25, 0, 3, 1, 2.000, 2.000, 0.000, 10, 10, 'grouping', NULL, 0.00, 1.75, 1.67, 0, 1, 0, 4, util.VN_CURDATE()), - (16, 99,1,50.0000, 5000, 4, 1, 1.500, 1.500, 0.000, 1, 1, 'packing', NULL, 0.00, 99.60, 99.40, 0, 1, 0, 1.00, '2024-07-30 08:13:51.000'), - (17, 11, 1, 50, 5000, 4, 1, 1.500, 1.500, 0.000, 1, 1, 'packing', NULL, 0.00, 99.6, 99.4, 0, 1, 0, 1, util.VN_CURDATE() - INTERVAL 2 MONTH); + (16, 99,1,50.0000, 5000, 4, 1, 1.500, 1.500, 0.000, 1, 1, 'packing', NULL, 0.00, 99.60, 99.40, 0, 1, 0, 1.00, '2024-07-30 08:13:51.000'), + (17, 11, 1, 50, 5000, 4, 1, 1.500, 1.500, 0.000, 1, 1, 'packing', NULL, 0.00, 99.6, 99.4, 0, 1, 0, 1, util.VN_CURDATE() - INTERVAL 2 MONTH); INSERT INTO `hedera`.`order`(`id`, `date_send`, `customer_id`, `delivery_method_id`, `agency_id`, `address_id`, `company_id`, `note`, `source_app`, `confirmed`,`total`, `date_make`, `first_row_stamp`, `confirm_date`) - VALUES - (1, DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL -1 MONTH), INTERVAL +1 DAY), 1101, 3, 1, 121, 442, NULL, 'TPV', 1,'155.89', DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH)), - (2, DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL -1 MONTH), INTERVAL +1 DAY), 1104, 3, 1, 124, 442, NULL, 'WEB', 1,'100.10', DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH)), - (3, DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL -2 MONTH), INTERVAL +1 DAY), 1104, 1, 2, 124, 442, NULL, 'ANDROID', 1,'107.25', DATE_ADD(util.VN_CURDATE(), INTERVAL -2 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL -2 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL -2 MONTH)), - (4, DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL -3 MONTH), INTERVAL +1 DAY), 1104, 1, 2, 124, 442, NULL, 'SALIX', 1,'10.01', DATE_ADD(util.VN_CURDATE(), INTERVAL -3 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL -3 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL -3 MONTH)), - (5, DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL -4 MONTH), INTERVAL +1 DAY), 1104, 1, 3, 124, 442, NULL, 'SALIX', 1,'10.01', DATE_ADD(util.VN_CURDATE(), INTERVAL -4 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL -4 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL -4 MONTH)), - (6, DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL -1 MONTH), INTERVAL +1 DAY), 1101, 1, 3, 1, 442, NULL, 'SALIX', 1,'10.01', DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH)), - (7, DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1101, 2, 7, 1, 442, NULL, 'SALIX', 0,'10.01', util.VN_CURDATE(), util.VN_CURDATE(), util.VN_CURDATE()), - (8, DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1101, 2, 7, 121, 442, NULL, 'SALIX', 0,'123.53', util.VN_CURDATE(), util.VN_CURDATE(), util.VN_CURDATE()), - (9, DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1104, 2, 7, 124, 442, NULL, 'SALIX', 0,'10.01', util.VN_CURDATE(), util.VN_CURDATE(), util.VN_CURDATE()), - (10, DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1102, 3, 1, 2, 442, NULL, 'SALIX', 0,'10.01', util.VN_CURDATE(), util.VN_CURDATE(), util.VN_CURDATE()), - (11, DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1102, 2, 7, 122, 442, NULL, 'SALIX', 0,'60.90', util.VN_CURDATE(), util.VN_CURDATE(), util.VN_CURDATE()), - (12, DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1103, 3, 1, 3, 442, NULL, 'SALIX', 0,'72.60', util.VN_CURDATE(), util.VN_CURDATE(), util.VN_CURDATE()), - (13, DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1103, 1, 2, 123, 442, NULL, 'SALIX', 0,'72.60', util.VN_CURDATE(), util.VN_CURDATE(), util.VN_CURDATE()), - (14, DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1104, 1, 2, 4, 442, NULL, 'SALIX', 0,'72.60', util.VN_CURDATE(), util.VN_CURDATE(), util.VN_CURDATE()), - (15, DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1105, 1, 3, 125, 442, NULL, 'SALIX', 0,'72.60', util.VN_CURDATE(), util.VN_CURDATE(), util.VN_CURDATE()), - (16, DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1106, 2, 7, 126, 442, NULL, 'SALIX', 0,'155.89', util.VN_CURDATE(), util.VN_CURDATE(), util.VN_CURDATE()), - (17, DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1107, 1, 4, 127, 442, NULL, 'SALIX', 0,'72.60', util.VN_CURDATE(), util.VN_CURDATE(), util.VN_CURDATE()), - (18, DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1108, 1, 4, 128, 442, NULL, 'SALIX', 0,'72.60', util.VN_CURDATE(), util.VN_CURDATE(), util.VN_CURDATE()), - (19, DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1109, 1, 5, 129, 442, NULL, 'SALIX', 0,'16.50', util.VN_CURDATE(), util.VN_CURDATE(), util.VN_CURDATE()), - (20, DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL +1 MONTH), INTERVAL +1 DAY), 1109, 1, 5, 101, 442, NULL, 'SALIX', 0,'21.45', DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH)), - (21, DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL +1 MONTH), INTERVAL +1 DAY), 1109, 1, 5, 102, 442, NULL, 'SALIX', 0,'0.00', DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH)), - (22, DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL +1 MONTH), INTERVAL +1 DAY), 1109, 1, 5, 103, 442, NULL, 'SALIX', 0,'148.50', DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH)); + VALUES + (1, DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL -1 MONTH), INTERVAL +1 DAY), 1101, 3, 1, 121, 442, NULL, 'TPV', 1,'155.89', DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH)), + (2, DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL -1 MONTH), INTERVAL +1 DAY), 1104, 3, 1, 124, 442, NULL, 'WEB', 1,'100.10', DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH)), + (3, DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL -2 MONTH), INTERVAL +1 DAY), 1104, 1, 2, 124, 442, NULL, 'ANDROID', 1,'107.25', DATE_ADD(util.VN_CURDATE(), INTERVAL -2 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL -2 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL -2 MONTH)), + (4, DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL -3 MONTH), INTERVAL +1 DAY), 1104, 1, 2, 124, 442, NULL, 'SALIX', 1,'10.01', DATE_ADD(util.VN_CURDATE(), INTERVAL -3 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL -3 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL -3 MONTH)), + (5, DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL -4 MONTH), INTERVAL +1 DAY), 1104, 1, 3, 124, 442, NULL, 'SALIX', 1,'10.01', DATE_ADD(util.VN_CURDATE(), INTERVAL -4 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL -4 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL -4 MONTH)), + (6, DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL -1 MONTH), INTERVAL +1 DAY), 1101, 1, 3, 1, 442, NULL, 'SALIX', 1,'10.01', DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH)), + (7, DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1101, 2, 7, 1, 442, NULL, 'SALIX', 0,'10.01', util.VN_CURDATE(), util.VN_CURDATE(), util.VN_CURDATE()), + (8, DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1101, 2, 7, 121, 442, NULL, 'SALIX', 0,'123.53', util.VN_CURDATE(), util.VN_CURDATE(), util.VN_CURDATE()), + (9, DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1104, 2, 7, 124, 442, NULL, 'SALIX', 0,'10.01', util.VN_CURDATE(), util.VN_CURDATE(), util.VN_CURDATE()), + (10, DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1102, 3, 1, 2, 442, NULL, 'SALIX', 0,'10.01', util.VN_CURDATE(), util.VN_CURDATE(), util.VN_CURDATE()), + (11, DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1102, 2, 7, 122, 442, NULL, 'SALIX', 0,'60.90', util.VN_CURDATE(), util.VN_CURDATE(), util.VN_CURDATE()), + (12, DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1103, 3, 1, 3, 442, NULL, 'SALIX', 0,'72.60', util.VN_CURDATE(), util.VN_CURDATE(), util.VN_CURDATE()), + (13, DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1103, 1, 2, 123, 442, NULL, 'SALIX', 0,'72.60', util.VN_CURDATE(), util.VN_CURDATE(), util.VN_CURDATE()), + (14, DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1104, 1, 2, 4, 442, NULL, 'SALIX', 0,'72.60', util.VN_CURDATE(), util.VN_CURDATE(), util.VN_CURDATE()), + (15, DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1105, 1, 3, 125, 442, NULL, 'SALIX', 0,'72.60', util.VN_CURDATE(), util.VN_CURDATE(), util.VN_CURDATE()), + (16, DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1106, 2, 7, 126, 442, NULL, 'SALIX', 0,'155.89', util.VN_CURDATE(), util.VN_CURDATE(), util.VN_CURDATE()), + (17, DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1107, 1, 4, 127, 442, NULL, 'SALIX', 0,'72.60', util.VN_CURDATE(), util.VN_CURDATE(), util.VN_CURDATE()), + (18, DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1108, 1, 4, 128, 442, NULL, 'SALIX', 0,'72.60', util.VN_CURDATE(), util.VN_CURDATE(), util.VN_CURDATE()), + (19, DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1109, 1, 5, 129, 442, NULL, 'SALIX', 0,'16.50', util.VN_CURDATE(), util.VN_CURDATE(), util.VN_CURDATE()), + (20, DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL +1 MONTH), INTERVAL +1 DAY), 1109, 1, 5, 101, 442, NULL, 'SALIX', 0,'21.45', DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH)), + (21, DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL +1 MONTH), INTERVAL +1 DAY), 1109, 1, 5, 102, 442, NULL, 'SALIX', 0,'0.00', DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH)), + (22, DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL +1 MONTH), INTERVAL +1 DAY), 1109, 1, 5, 103, 442, NULL, 'SALIX', 0,'148.50', DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH)); INSERT INTO `hedera`.`orderRow`(`id`, `orderFk`, `itemFk`, `warehouseFk`, `shipment`, `amount`, `price`, `rate`, `created`, `saleFk`) - VALUES - (1, 1, 1, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 5, 9.10, 0, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 1), - (2, 1, 2, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 10, 1.07, 0, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 2), - (3, 1, 1, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 2, 9.10, 0, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 3), - (4, 1, 4, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 20, 3.06, 0, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 4), - (5, 2, 1, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 10, 9.10, 0, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 5), - (6, 3, 1, 2, DATE_ADD(util.VN_CURDATE(), INTERVAL -2 MONTH), 15, 6.50, 0, DATE_ADD(util.VN_CURDATE(), INTERVAL -2 MONTH), 6), - (7, 11, 2, 1, util.VN_CURDATE(), 15, 1.30, 0, util.VN_CURDATE(), 7), - (8, 11, 4, 1, util.VN_CURDATE(), 10, 3.26, 0, util.VN_CURDATE(), 8), - (9, 16, 1, 1, util.VN_CURDATE(), 5, 9.10, 0, util.VN_CURDATE(), 9), - (10, 16, 2, 1, util.VN_CURDATE(), 10, 1.07, 0, util.VN_CURDATE(), 10), - (11, 16, 1, 1, util.VN_CURDATE(), 2, 9.10, 0, util.VN_CURDATE(), 11), - (12, 16, 4, 1, util.VN_CURDATE(), 20, 3.06, 0, util.VN_CURDATE(), 12), - (13, 8, 2, 1, util.VN_CURDATE(), 15, 1.30, 0, util.VN_CURDATE(), 13), - (14, 8, 1, 1, util.VN_CURDATE(), 10, 9.28, 0, util.VN_CURDATE(), 14), - (15, 19, 1, 1, util.VN_CURDATE(), 10, 1.50, 0, util.VN_CURDATE(), 15), - (16, 20, 2, 1, util.VN_CURDATE(), 15, 1.30, 0, util.VN_CURDATE(), 16), - (17, 22, 2, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH), 30, 2.30, 0, DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH), 17), - (18, 22, 4, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH), 20, 3.00, 0, DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH), 18), - (19, 4, 1, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -3 MONTH), 1, 9.10, 0, DATE_ADD(util.VN_CURDATE(), INTERVAL -3 MONTH), 19), - (20, 5, 1, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -4 MONTH), 1, 9.10, 0, DATE_ADD(util.VN_CURDATE(), INTERVAL -4 MONTH), 20), - (21, 6, 1, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 1, 9.10, 0, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 21), - (22, 7, 1, 1, util.VN_CURDATE(), 1, 9.10, 0, util.VN_CURDATE(), 22), - (23, 9, 1, 1, util.VN_CURDATE(), 1, 9.10, 0, util.VN_CURDATE(), 23), - (24, 10, 1, 1, util.VN_CURDATE(), 1, 9.10, 0, util.VN_CURDATE(), 24), - (25, 12, 4, 1, util.VN_CURDATE(), 20, 3.00, 0, util.VN_CURDATE(), 25), - (26, 13, 4, 1, util.VN_CURDATE(), 20, 3.00, 0, util.VN_CURDATE(), 26), - (27, 14, 4, 1, util.VN_CURDATE(), 20, 3.00, 0, util.VN_CURDATE(), 27), - (28, 15, 4, 1, util.VN_CURDATE(), 20, 3.00, 0, util.VN_CURDATE(), 28), - (29, 17, 4, 1, util.VN_CURDATE(), 20, 3.00, 0, util.VN_CURDATE(), 29), - (30, 18, 4, 1, util.VN_CURDATE(), 20, 3.00, 0, util.VN_CURDATE(), 30); + VALUES + (1, 1, 1, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 5, 9.10, 0, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 1), + (2, 1, 2, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 10, 1.07, 0, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 2), + (3, 1, 1, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 2, 9.10, 0, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 3), + (4, 1, 4, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 20, 3.06, 0, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 4), + (5, 2, 1, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 10, 9.10, 0, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 5), + (6, 3, 1, 2, DATE_ADD(util.VN_CURDATE(), INTERVAL -2 MONTH), 15, 6.50, 0, DATE_ADD(util.VN_CURDATE(), INTERVAL -2 MONTH), 6), + (7, 11, 2, 1, util.VN_CURDATE(), 15, 1.30, 0, util.VN_CURDATE(), 7), + (8, 11, 4, 1, util.VN_CURDATE(), 10, 3.26, 0, util.VN_CURDATE(), 8), + (9, 16, 1, 1, util.VN_CURDATE(), 5, 9.10, 0, util.VN_CURDATE(), 9), + (10, 16, 2, 1, util.VN_CURDATE(), 10, 1.07, 0, util.VN_CURDATE(), 10), + (11, 16, 1, 1, util.VN_CURDATE(), 2, 9.10, 0, util.VN_CURDATE(), 11), + (12, 16, 4, 1, util.VN_CURDATE(), 20, 3.06, 0, util.VN_CURDATE(), 12), + (13, 8, 2, 1, util.VN_CURDATE(), 15, 1.30, 0, util.VN_CURDATE(), 13), + (14, 8, 1, 1, util.VN_CURDATE(), 10, 9.28, 0, util.VN_CURDATE(), 14), + (15, 19, 1, 1, util.VN_CURDATE(), 10, 1.50, 0, util.VN_CURDATE(), 15), + (16, 20, 2, 1, util.VN_CURDATE(), 15, 1.30, 0, util.VN_CURDATE(), 16), + (17, 22, 2, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH), 30, 2.30, 0, DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH), 17), + (18, 22, 4, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH), 20, 3.00, 0, DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH), 18), + (19, 4, 1, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -3 MONTH), 1, 9.10, 0, DATE_ADD(util.VN_CURDATE(), INTERVAL -3 MONTH), 19), + (20, 5, 1, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -4 MONTH), 1, 9.10, 0, DATE_ADD(util.VN_CURDATE(), INTERVAL -4 MONTH), 20), + (21, 6, 1, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 1, 9.10, 0, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 21), + (22, 7, 1, 1, util.VN_CURDATE(), 1, 9.10, 0, util.VN_CURDATE(), 22), + (23, 9, 1, 1, util.VN_CURDATE(), 1, 9.10, 0, util.VN_CURDATE(), 23), + (24, 10, 1, 1, util.VN_CURDATE(), 1, 9.10, 0, util.VN_CURDATE(), 24), + (25, 12, 4, 1, util.VN_CURDATE(), 20, 3.00, 0, util.VN_CURDATE(), 25), + (26, 13, 4, 1, util.VN_CURDATE(), 20, 3.00, 0, util.VN_CURDATE(), 26), + (27, 14, 4, 1, util.VN_CURDATE(), 20, 3.00, 0, util.VN_CURDATE(), 27), + (28, 15, 4, 1, util.VN_CURDATE(), 20, 3.00, 0, util.VN_CURDATE(), 28), + (29, 17, 4, 1, util.VN_CURDATE(), 20, 3.00, 0, util.VN_CURDATE(), 29), + (30, 18, 4, 1, util.VN_CURDATE(), 20, 3.00, 0, util.VN_CURDATE(), 30); INSERT INTO `hedera`.`orderRowComponent`(`rowFk`, `componentFk`, `price`) - VALUES - (1, 15, 0.58), - (1, 23, 6.5), - (1, 28, 20.72), - (1, 29, -18.72), - (1, 39, 0.02), - (2, 15, 0.058), - (2, 21, 0.002), - (2, 28, 5.6), - (2, 29, -4.6), - (2, 39, 0.01), - (3, 15, 0.58), - (3, 23, 6.5), - (3, 28, 20.72), - (3, 29, -18.72), - (3, 39, 0.02), - (4, 15, 0.051), - (4, 21, -0.001), - (4, 28, 20.72), - (4, 29, -19.72), - (4, 37, 2), - (4, 39, 0.01), - (5, 15, 0.58), - (5, 23, 6.5), - (5, 28, 20.72), - (5, 29, -18.72), - (5, 39, 0.02), - (6, 23, 6.5), - (7, 15, 0.0114), - (7, 28, 5.6), - (7, 29, -4.6), - (7, 39, 0.01), - (8, 15, 0.0016), - (8, 28, 20.72), - (8, 29, -19.72), - (8, 37, 2), - (8, 39, 0.01), - (9, 15, 0.58), - (9, 23, 6.5), - (9, 28, 20.72), - (9, 29, -18.72), - (9, 39, 0.02), - (10, 15, 0.058), - (10, 21, 0.002), - (10, 28, 5.6), - (10, 29, -4.6), - (10, 39, 0.01), - (11, 15, 0.58), - (11, 23, 6.5), - (11, 28, 20.72), - (11, 29, -18.72), - (11, 39, 0.02), - (12, 15, 0.051), - (12, 22, -0.001), - (12, 28, 20.72), - (12, 29, -19.72), - (12, 37, 2), - (12, 39, 0.01), - (13, 15, 0.2899), - (13, 28, 5.6), - (13, 29, -4.6), - (13, 39, 0.01), - (14, 15, 0.58), - (14, 23, 6.5), - (14, 28, 20.72), - (14, 29, -18.72), - (14, 39, 0.02), - (15, 15, 0.58), - (15, 23, 6.5), - (15, 28, 20.72), - (15, 29, -18.72), - (15, 39, 0.02), - (16, 15, 0.058), - (16, 21, 0.002), - (16, 28, 5.6), - (16, 29, -4.6), - (16, 39, 0.01), - (17, 15, 0.058), - (17, 21, 0.002), - (17, 28, 5.6), - (17, 29, -4.6), - (17, 39, 0.01), - (18, 15, 0.051), - (18, 22, -0.001), - (18, 28, 20.72), - (18, 29, -19.72), - (18, 37, 2), - (18, 39, 0.01), - (19, 15, 0.58), - (19, 23, 6.5), - (19, 28, 20.72), - (19, 29, -18.72), - (19, 39, 0.02), - (20, 15, 0.58), - (20, 23, 6.5), - (20, 28, 20.72), - (20, 29, -18.72), - (20, 39, 0.02), - (21, 15, 0.58), - (21, 23, 6.5), - (21, 28, 20.72), - (21, 29, -18.72), - (21, 39, 0.02), - (22, 15, 0.58), - (22, 23, 6.5), - (22, 28, 20.72), - (22, 29, -18.72), - (22, 39, 0.02), - (23, 15, 0.58), - (23, 23, 6.5), - (23, 28, 20.72), - (23, 29, -18.72), - (23, 39, 0.02), - (24, 15, 0.58), - (24, 23, 6.5), - (24, 28, 20.72), - (24, 29, -18.72), - (24, 39, 0.02), - (25, 15, 0.051), - (25, 22, -0.001), - (25, 28, 20.72), - (25, 29, -19.72), - (25, 37, 2), - (25, 39, 0.01), - (26, 15, 0.051), - (26, 22, -0.001), - (26, 28, 20.72), - (26, 29, -19.72), - (26, 37, 2), - (26, 39, 0.01), - (27, 15, 0.051), - (27, 22, -0.001), - (27, 28, 20.72), - (27, 29, -19.72), - (27, 37, 2), - (27, 39, 0.01), - (28, 15, 0.051), - (28, 22, -0.001), - (28, 28, 20.72), - (28, 29, -19.72), - (28, 37, 2), - (28, 39, 0.01), - (29, 15, 0.051), - (29, 22, -0.001), - (29, 28, 20.72), - (29, 29, -19.72), - (29, 37, 2), - (29, 39, 0.01), - (30, 15, 0.051), - (30, 22, -0.001), - (30, 28, 20.72), - (30, 29, -19.72), - (30, 37, 2), - (30, 39, 0.01); + VALUES + (1, 15, 0.58), + (1, 23, 6.5), + (1, 28, 20.72), + (1, 29, -18.72), + (1, 39, 0.02), + (2, 15, 0.058), + (2, 21, 0.002), + (2, 28, 5.6), + (2, 29, -4.6), + (2, 39, 0.01), + (3, 15, 0.58), + (3, 23, 6.5), + (3, 28, 20.72), + (3, 29, -18.72), + (3, 39, 0.02), + (4, 15, 0.051), + (4, 21, -0.001), + (4, 28, 20.72), + (4, 29, -19.72), + (4, 37, 2), + (4, 39, 0.01), + (5, 15, 0.58), + (5, 23, 6.5), + (5, 28, 20.72), + (5, 29, -18.72), + (5, 39, 0.02), + (6, 23, 6.5), + (7, 15, 0.0114), + (7, 28, 5.6), + (7, 29, -4.6), + (7, 39, 0.01), + (8, 15, 0.0016), + (8, 28, 20.72), + (8, 29, -19.72), + (8, 37, 2), + (8, 39, 0.01), + (9, 15, 0.58), + (9, 23, 6.5), + (9, 28, 20.72), + (9, 29, -18.72), + (9, 39, 0.02), + (10, 15, 0.058), + (10, 21, 0.002), + (10, 28, 5.6), + (10, 29, -4.6), + (10, 39, 0.01), + (11, 15, 0.58), + (11, 23, 6.5), + (11, 28, 20.72), + (11, 29, -18.72), + (11, 39, 0.02), + (12, 15, 0.051), + (12, 22, -0.001), + (12, 28, 20.72), + (12, 29, -19.72), + (12, 37, 2), + (12, 39, 0.01), + (13, 15, 0.2899), + (13, 28, 5.6), + (13, 29, -4.6), + (13, 39, 0.01), + (14, 15, 0.58), + (14, 23, 6.5), + (14, 28, 20.72), + (14, 29, -18.72), + (14, 39, 0.02), + (15, 15, 0.58), + (15, 23, 6.5), + (15, 28, 20.72), + (15, 29, -18.72), + (15, 39, 0.02), + (16, 15, 0.058), + (16, 21, 0.002), + (16, 28, 5.6), + (16, 29, -4.6), + (16, 39, 0.01), + (17, 15, 0.058), + (17, 21, 0.002), + (17, 28, 5.6), + (17, 29, -4.6), + (17, 39, 0.01), + (18, 15, 0.051), + (18, 22, -0.001), + (18, 28, 20.72), + (18, 29, -19.72), + (18, 37, 2), + (18, 39, 0.01), + (19, 15, 0.58), + (19, 23, 6.5), + (19, 28, 20.72), + (19, 29, -18.72), + (19, 39, 0.02), + (20, 15, 0.58), + (20, 23, 6.5), + (20, 28, 20.72), + (20, 29, -18.72), + (20, 39, 0.02), + (21, 15, 0.58), + (21, 23, 6.5), + (21, 28, 20.72), + (21, 29, -18.72), + (21, 39, 0.02), + (22, 15, 0.58), + (22, 23, 6.5), + (22, 28, 20.72), + (22, 29, -18.72), + (22, 39, 0.02), + (23, 15, 0.58), + (23, 23, 6.5), + (23, 28, 20.72), + (23, 29, -18.72), + (23, 39, 0.02), + (24, 15, 0.58), + (24, 23, 6.5), + (24, 28, 20.72), + (24, 29, -18.72), + (24, 39, 0.02), + (25, 15, 0.051), + (25, 22, -0.001), + (25, 28, 20.72), + (25, 29, -19.72), + (25, 37, 2), + (25, 39, 0.01), + (26, 15, 0.051), + (26, 22, -0.001), + (26, 28, 20.72), + (26, 29, -19.72), + (26, 37, 2), + (26, 39, 0.01), + (27, 15, 0.051), + (27, 22, -0.001), + (27, 28, 20.72), + (27, 29, -19.72), + (27, 37, 2), + (27, 39, 0.01), + (28, 15, 0.051), + (28, 22, -0.001), + (28, 28, 20.72), + (28, 29, -19.72), + (28, 37, 2), + (28, 39, 0.01), + (29, 15, 0.051), + (29, 22, -0.001), + (29, 28, 20.72), + (29, 29, -19.72), + (29, 37, 2), + (29, 39, 0.01), + (30, 15, 0.051), + (30, 22, -0.001), + (30, 28, 20.72), + (30, 29, -19.72), + (30, 37, 2), + (30, 39, 0.01); INSERT INTO `hedera`.`visit`(`id`, `firstAgentFk`) - VALUES - (1, NULL), - (2, NULL), - (3, NULL), - (4, NULL), - (5, NULL), - (6, NULL), - (7, NULL), - (8, NULL), - (9, NULL), - (10, NULL), - (11, NULL); + VALUES + (1, NULL), + (2, NULL), + (3, NULL), + (4, NULL), + (5, NULL), + (6, NULL), + (7, NULL), + (8, NULL), + (9, NULL), + (10, NULL), + (11, NULL); INSERT INTO `hedera`.`visitAgent`(`id`, `visitFk`) - VALUES - (1, 1), - (2, 2), - (3, 3), - (4, 4), - (5, 5), - (6, 6), - (7, 7), - (8, 8), - (9, 9), - (10, 10), - (11, 11); + VALUES + (1, 1), + (2, 2), + (3, 3), + (4, 4), + (5, 5), + (6, 6), + (7, 7), + (8, 8), + (9, 9), + (10, 10), + (11, 11); INSERT INTO `hedera`.`visitAccess`(`id`, `agentFk`, `stamp`) - VALUES - (1, 1, util.VN_CURDATE()), - (2, 2, util.VN_CURDATE()), - (3, 3, util.VN_CURDATE()), - (4, 4, util.VN_CURDATE()), - (5, 5, util.VN_CURDATE()), - (6, 6, util.VN_CURDATE()), - (7, 7, util.VN_CURDATE()), - (8, 8, util.VN_CURDATE()), - (9, 9, util.VN_CURDATE()), - (10, 10, util.VN_CURDATE()), - (11, 11, util.VN_CURDATE()); + VALUES + (1, 1, util.VN_CURDATE()), + (2, 2, util.VN_CURDATE()), + (3, 3, util.VN_CURDATE()), + (4, 4, util.VN_CURDATE()), + (5, 5, util.VN_CURDATE()), + (6, 6, util.VN_CURDATE()), + (7, 7, util.VN_CURDATE()), + (8, 8, util.VN_CURDATE()), + (9, 9, util.VN_CURDATE()), + (10, 10, util.VN_CURDATE()), + (11, 11, util.VN_CURDATE()); INSERT INTO `hedera`.`visitUser`(`id`, `accessFk`, `userFk`, `stamp`) - VALUES - (1, 1, 1101, util.VN_CURDATE()), - (2, 2, 1101, util.VN_CURDATE()), - (3, 3, 1101, util.VN_CURDATE()), - (4, 4, 1102, util.VN_CURDATE()), - (5, 5, 1102, util.VN_CURDATE()), - (6, 6, 1102, util.VN_CURDATE()), - (7, 7, 1103, util.VN_CURDATE()), - (8, 8, 1103, util.VN_CURDATE()), - (9, 9, 1103, util.VN_CURDATE()), - (10, 10, 1102, DATE_SUB(util.VN_CURDATE(), INTERVAL 1 DAY)), - (11, 11, 1103, DATE_SUB(util.VN_CURDATE(), INTERVAL 1 DAY)); + VALUES + (1, 1, 1101, util.VN_CURDATE()), + (2, 2, 1101, util.VN_CURDATE()), + (3, 3, 1101, util.VN_CURDATE()), + (4, 4, 1102, util.VN_CURDATE()), + (5, 5, 1102, util.VN_CURDATE()), + (6, 6, 1102, util.VN_CURDATE()), + (7, 7, 1103, util.VN_CURDATE()), + (8, 8, 1103, util.VN_CURDATE()), + (9, 9, 1103, util.VN_CURDATE()), + (10, 10, 1102, DATE_SUB(util.VN_CURDATE(), INTERVAL 1 DAY)), + (11, 11, 1103, DATE_SUB(util.VN_CURDATE(), INTERVAL 1 DAY)); INSERT INTO `hedera`.`userSession`(`created`, `lastUpdate`, `ssid`, `data`, `userVisitFk`) - VALUES - (util.VN_CURDATE(), util.VN_CURDATE(), '121', 'data', 1), - (util.VN_CURDATE(), util.VN_CURDATE(), '122', 'data', 2), - (util.VN_CURDATE(), util.VN_CURDATE(), '123', 'data', 3), - (util.VN_CURDATE(), util.VN_CURDATE(), '124', 'data', 4), - (util.VN_CURDATE(), util.VN_CURDATE(), '125', 'data', 5), - (util.VN_CURDATE(), util.VN_CURDATE(), '126', 'data', 6), - (util.VN_CURDATE(), util.VN_CURDATE(), '127', 'data', 7), - (util.VN_CURDATE(), util.VN_CURDATE(), '128', 'data', 8), - (util.VN_CURDATE(), util.VN_CURDATE(), '129', 'data', 9); + VALUES + (util.VN_CURDATE(), util.VN_CURDATE(), '121', 'data', 1), + (util.VN_CURDATE(), util.VN_CURDATE(), '122', 'data', 2), + (util.VN_CURDATE(), util.VN_CURDATE(), '123', 'data', 3), + (util.VN_CURDATE(), util.VN_CURDATE(), '124', 'data', 4), + (util.VN_CURDATE(), util.VN_CURDATE(), '125', 'data', 5), + (util.VN_CURDATE(), util.VN_CURDATE(), '126', 'data', 6), + (util.VN_CURDATE(), util.VN_CURDATE(), '127', 'data', 7), + (util.VN_CURDATE(), util.VN_CURDATE(), '128', 'data', 8), + (util.VN_CURDATE(), util.VN_CURDATE(), '129', 'data', 9); INSERT INTO `vn`.`clientContact`(`id`, `clientFk`, `name`, `phone`) - VALUES - (1, 1101, 'contact 1', 666777888), - (2, 1101, 'contact 2', 111222333), - (3, 1101, 'contact 3', 222333444), - (4, 1102, 'contact 1', 876543219); + VALUES + (1, 1101, 'contact 1', 666777888), + (2, 1101, 'contact 2', 111222333), + (3, 1101, 'contact 3', 222333444), + (4, 1102, 'contact 1', 876543219); INSERT INTO `vn`.`workerManaExcluded`(`workerFk`) - VALUES - (9); + VALUES + (9); /* - el mana de los trabajadores lo podemos poner a mano en la tabla si lo calculamos antes, - pero si hazemos alguna modificacion en alguna tabla que utiliza para calcularlo ya no seria correcto +el mana de los trabajadores lo podemos poner a mano en la tabla si lo calculamos antes, +pero si hazemos alguna modificacion en alguna tabla que utiliza para calcularlo ya no seria correcto - La otra manera es poner el calculo con los 2 trabajadores que utilizamos ahora mismo para los tickets +La otra manera es poner el calculo con los 2 trabajadores que utilizamos ahora mismo para los tickets */ call vn.manaSpellersRequery(19); call vn.manaSpellersRequery(18); INSERT INTO `vn`.`clientSample`(`id`, `clientFk`, `typeFk`, `created`, `workerFk`, `userFk`, `companyFk`) - VALUES - (1, 1101, 1, util.VN_CURDATE(), 18, 18, 442), - (2, 1101, 1, util.VN_CURDATE(), 18, 18, 442), - (3, 1101, 2, util.VN_CURDATE(), 18, 18, 442), - (4, 1102, 2, util.VN_CURDATE(), 18, 18, 567), - (5, 1102, 3, util.VN_CURDATE(), 19, 19, 567); + VALUES + (1, 1101, 1, util.VN_CURDATE(), 18, 18, 442), + (2, 1101, 1, util.VN_CURDATE(), 18, 18, 442), + (3, 1101, 2, util.VN_CURDATE(), 18, 18, 442), + (4, 1102, 2, util.VN_CURDATE(), 18, 18, 567), + (5, 1102, 3, util.VN_CURDATE(), 19, 19, 567); INSERT INTO `vn`.`claimState`(`id`, `code`, `description`, `roleFk`, `priority`, `hasToNotify`) - VALUES - ( 1, 'pending', 'Pendiente', 1, 1, 0), - ( 3, 'resolved', 'Resuelto', 72, 7, 0), - ( 4, 'canceled', 'Anulado', 72, 6, 1), - ( 5, 'incomplete', 'Incompleta', 1, 3, 1); + VALUES + ( 1, 'pending', 'Pendiente', 1, 1, 0), + ( 3, 'resolved', 'Resuelto', 72, 7, 0), + ( 4, 'canceled', 'Anulado', 72, 6, 1), + ( 5, 'incomplete', 'Incompleta', 1, 3, 1); INSERT INTO `vn`.`claim`(`id`, `ticketCreated`, `claimStateFk`, `clientFk`, `workerFk`, `responsibility`, `isChargedToMana`, `created`, `packages`, `ticketFk`) - VALUES - (1, util.VN_CURDATE(), 1, 1101, 19, 3, 0, util.VN_CURDATE(), 0, 11), - (2, util.VN_CURDATE(), 4, 1101, 18, 3, 0, util.VN_CURDATE(), 1, 16), - (3, util.VN_CURDATE(), 3, 1101, 19, 1, 1, util.VN_CURDATE(), 5, 7), - (4, util.VN_CURDATE(), 3, 1104, 18, 5, 0, util.VN_CURDATE(), 10, 8); + VALUES + (1, util.VN_CURDATE(), 1, 1101, 19, 3, 0, util.VN_CURDATE(), 0, 11), + (2, util.VN_CURDATE(), 4, 1101, 18, 3, 0, util.VN_CURDATE(), 1, 16), + (3, util.VN_CURDATE(), 3, 1101, 19, 1, 1, util.VN_CURDATE(), 5, 7), + (4, util.VN_CURDATE(), 3, 1104, 18, 5, 0, util.VN_CURDATE(), 10, 8); INSERT INTO `vn`.`claimObservation` (`claimFk`, `workerFk`, `text`, `created`) - VALUES - (1, 18, 'Cu nam labores lobortis definiebas, ei aliquyam salutatus persequeris quo, cum eu nemore fierent dissentiunt. Per vero dolor id, vide democritum scribentur eu vim, pri erroribus temporibus ex.', util.VN_CURDATE()), - (2, 18, 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.', util.VN_CURDATE()), - (3, 18, 'An vim commodo dolorem volutpat, cu expetendis voluptatum usu, et mutat consul adversarium his. His natum numquam legimus an, diam fabulas mei ut. Melius fabellas sadipscing vel id. Partem diceret mandamus mea ne, has te tempor nostrud. Aeque nostro eum no.', util.VN_CURDATE()), - (4, 18, 'Wisi forensibus mnesarchum in cum. Per id impetus abhorreant, his no magna definiebas, inani rationibus in quo. Ut vidisse dolores est, ut quis nominavi mel. Ad pri quod apeirian concludaturque.', util.VN_CURDATE()); + VALUES + (1, 18, 'Cu nam labores lobortis definiebas, ei aliquyam salutatus persequeris quo, cum eu nemore fierent dissentiunt. Per vero dolor id, vide democritum scribentur eu vim, pri erroribus temporibus ex.', util.VN_CURDATE()), + (2, 18, 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.', util.VN_CURDATE()), + (3, 18, 'An vim commodo dolorem volutpat, cu expetendis voluptatum usu, et mutat consul adversarium his. His natum numquam legimus an, diam fabulas mei ut. Melius fabellas sadipscing vel id. Partem diceret mandamus mea ne, has te tempor nostrud. Aeque nostro eum no.', util.VN_CURDATE()), + (4, 18, 'Wisi forensibus mnesarchum in cum. Per id impetus abhorreant, his no magna definiebas, inani rationibus in quo. Ut vidisse dolores est, ut quis nominavi mel. Ad pri quod apeirian concludaturque.', util.VN_CURDATE()); INSERT INTO `vn`.`claimBeginning`(`id`, `claimFk`, `saleFk`, `quantity`) - VALUES - (1, 1, 7, 5), - (2, 2, 10, 10), - (3, 3, 22, 1), - (4, 4, 13, 5); + VALUES + (1, 1, 7, 5), + (2, 2, 10, 10), + (3, 3, 22, 1), + (4, 4, 13, 5); INSERT INTO `vn`.`claimDestination`(`id`, `description`, `addressFk`) - VALUES - (1, 'Bueno', NULL), - (2, 'Basura/Perd.', 12), - (3, 'Confeccion', NULL), - (4, 'Reclam.PRAG', 12), - (5, 'Corregido', 11); + VALUES + (1, 'Bueno', NULL), + (2, 'Basura/Perd.', 12), + (3, 'Confeccion', NULL), + (4, 'Reclam.PRAG', 12), + (5, 'Corregido', 11); INSERT INTO `vn`.`claimDevelopment`(`id`, `claimFk`, `claimResponsibleFk`, `workerFk`, `claimReasonFk`, `claimResultFk`, `claimRedeliveryFk`, `claimDestinationFk`) - VALUES - (1, 1, 1, 21, 7, 1, 2, 5), - (2, 1, 2, 21, 7, 2, 2, 5), - (3, 2, 7, 21, 9, 3, 2, 5), - (4, 3, 7, 21, 15, 8, 2, 5), - (5, 4, 7, 21, 7, 8, 2, 5); + VALUES + (1, 1, 1, 21, 7, 1, 2, 5), + (2, 1, 2, 21, 7, 2, 2, 5), + (3, 2, 7, 21, 9, 3, 2, 5), + (4, 3, 7, 21, 15, 8, 2, 5), + (5, 4, 7, 21, 7, 8, 2, 5); INSERT INTO `vn`.`claimEnd`(`id`, `saleFk`, `claimFk`, `workerFk`, `claimDestinationFk`) - VALUES - (1, 31, 4, 21, 2), - (2, 32, 3, 21, 3); + VALUES + (1, 31, 4, 21, 2), + (2, 32, 3, 21, 3); INSERT INTO `vn`.`claimConfig`(`id`, `maxResponsibility`, `monthsToRefund`, `minShipped`) - VALUES - (1, 5, 4, '2016-10-01'); + VALUES + (1, 5, 4, '2016-10-01'); INSERT INTO `vn`.`claimRatio`(`clientFk`, `yearSale`, `claimAmount`, `claimingRate`, `priceIncreasing`, `packingRate`) - VALUES - (1101, 500, NULL, 0.00, 0.00, 1.00), - (1102, 1000, 2.00, 0.01, 0.05, 1.00), - (1103, 2000, 0.00, 0.00, 0.02, 1.00), - (1104, 2500, 150.00, 0.02, 0.10, 1.00); + VALUES + (1101, 500, NULL, 0.00, 0.00, 1.00), + (1102, 1000, 2.00, 0.01, 0.05, 1.00), + (1103, 2000, 0.00, 0.00, 0.02, 1.00), + (1104, 2500, 150.00, 0.02, 0.10, 1.00); INSERT INTO `vn`.`claimLog` (`originFk`, userFk, `action`, changedModel, oldInstance, newInstance, changedModelId, `description`) - VALUES - (1, 18, 'update', 'Claim', '{"pickup":null}', '{"pickup":"agency"}', 1, NULL), - (1, 18, 'update', 'ClaimObservation', '{}', '{"claimFk":1,"text":"Waiting for customer"}', 1, NULL), - (1, 18, 'insert', 'ClaimBeginning', '{}', '{"claimFk":1,"saleFk":1,"quantity":10}', 1, NULL), - (1, 18, 'insert', 'ClaimDms', '{}', '{"claimFk":1,"dmsFk":1}', 1, NULL); + VALUES + (1, 18, 'update', 'Claim', '{"pickup":null}', '{"pickup":"agency"}', 1, NULL), + (1, 18, 'update', 'ClaimObservation', '{}', '{"claimFk":1,"text":"Waiting for customer"}', 1, NULL), + (1, 18, 'insert', 'ClaimBeginning', '{}', '{"claimFk":1,"saleFk":1,"quantity":10}', 1, NULL), + (1, 18, 'insert', 'ClaimDms', '{}', '{"claimFk":1,"dmsFk":1}', 1, NULL); INSERT INTO `hedera`.`tpvMerchant`(`id`, `description`, `companyFk`, `bankFk`, `secretKey`) - VALUES - (1, 'Arkham Bank', 442, 1, 'h12387193H10238'), - (2, 'NewYork Bank', 442, 1, '7981ugsgd1hsdad'); + VALUES + (1, 'Arkham Bank', 442, 1, 'h12387193H10238'), + (2, 'NewYork Bank', 442, 1, '7981ugsgd1hsdad'); INSERT INTO `hedera`.`tpvTransaction`(`id`,`merchantFk`, `clientFk`,`receiptFk`, `amount`, `response`, `errorCode`, `status`, `created`) - VALUES - (1, 1, 1101, NULL, 2000, NULL, 'SIS0042', 'ok', util.VN_CURDATE()), - (2, 1, 1101, NULL, 1000, NULL, 'SIS0051', 'started', util.VN_CURDATE()), - (3, 2, 1101, NULL, 7268, NULL, NULL, 'ok', util.VN_CURDATE()), - (4, 2, 1101, NULL, 4698, NULL, NULL, 'started', util.VN_CURDATE()), - (5, 1, 1104, NULL, 2000, NULL, 'SIS0043', 'ok', util.VN_CURDATE()), - (6, 2, 1104, NULL, 4000, NULL, 'SIS0044', 'started', util.VN_CURDATE()); + VALUES + (1, 1, 1101, NULL, 2000, NULL, 'SIS0042', 'ok', util.VN_CURDATE()), + (2, 1, 1101, NULL, 1000, NULL, 'SIS0051', 'started', util.VN_CURDATE()), + (3, 2, 1101, NULL, 7268, NULL, NULL, 'ok', util.VN_CURDATE()), + (4, 2, 1101, NULL, 4698, NULL, NULL, 'started', util.VN_CURDATE()), + (5, 1, 1104, NULL, 2000, NULL, 'SIS0043', 'ok', util.VN_CURDATE()), + (6, 2, 1104, NULL, 4000, NULL, 'SIS0044', 'started', util.VN_CURDATE()); INSERT INTO `vn`.`orderTicket`(`orderFk`, `ticketFk`) - VALUES - (1, 1), - (2, 2), - (3, 3), - (4, 4), - (5, 5), - (6, 6), - (7, 7), - (8, 8), - (9, 9), - (10, 10), - (11, 11), - (12, 12), - (13, 13), - (14, 14), - (15, 15), - (16, 16), - (17, 17), - (18, 18), - (19, 19), - (20, 20), - (21, 21), - (22, 22); + VALUES + (1, 1), + (2, 2), + (3, 3), + (4, 4), + (5, 5), + (6, 6), + (7, 7), + (8, 8), + (9, 9), + (10, 10), + (11, 11), + (12, 12), + (13, 13), + (14, 14), + (15, 15), + (16, 16), + (17, 17), + (18, 18), + (19, 19), + (20, 20), + (21, 21), + (22, 22); INSERT INTO `vn`.`userMultiConfig` (`userFk`, `warehouseFk`, `companyFk`) - VALUES - (1, 1, 69), - (5, 1, 442), - (9, 1, 442), - (18, 3, 567); + VALUES + (1, 1, 69), + (5, 1, 442), + (9, 1, 442), + (18, 3, 567); INSERT INTO `vn`.`receipt`(`id`, `invoiceFk`, `amountPaid`, `payed`, `workerFk`, `bankFk`, `clientFk`, `created`, `companyFk`, `isConciliate`) - VALUES - (1, 'Cobro web', 100.50, util.VN_CURDATE(), 9, 1, 1101, util.VN_CURDATE(), 442, 1), - (2, 'Cobro web', 200.50, DATE_ADD(util.VN_CURDATE(), INTERVAL -5 DAY), 9, 1, 1101, DATE_ADD(util.VN_CURDATE(), INTERVAL -5 DAY), 442, 1), - (3, 'Cobro en efectivo', 300.00, DATE_ADD(util.VN_CURDATE(), INTERVAL -10 DAY), 9, 1, 1102, DATE_ADD(util.VN_CURDATE(), INTERVAL -10 DAY), 442, 0), - (4, 'Cobro en efectivo', 400.00, DATE_ADD(util.VN_CURDATE(), INTERVAL -15 DAY), 9, 1, 1103, DATE_ADD(util.VN_CURDATE(), INTERVAL -15 DAY), 442, 0), - (5, 'Compensación', 400.00, DATE_ADD(util.VN_CURDATE(), INTERVAL -15 DAY), 9, 3, 1103, DATE_ADD(util.VN_CURDATE(), INTERVAL -15 DAY), 442, 0); + VALUES + (1, 'Cobro web', 100.50, util.VN_CURDATE(), 9, 1, 1101, util.VN_CURDATE(), 442, 1), + (2, 'Cobro web', 200.50, DATE_ADD(util.VN_CURDATE(), INTERVAL -5 DAY), 9, 1, 1101, DATE_ADD(util.VN_CURDATE(), INTERVAL -5 DAY), 442, 1), + (3, 'Cobro en efectivo', 300.00, DATE_ADD(util.VN_CURDATE(), INTERVAL -10 DAY), 9, 1, 1102, DATE_ADD(util.VN_CURDATE(), INTERVAL -10 DAY), 442, 0), + (4, 'Cobro en efectivo', 400.00, DATE_ADD(util.VN_CURDATE(), INTERVAL -15 DAY), 9, 1, 1103, DATE_ADD(util.VN_CURDATE(), INTERVAL -15 DAY), 442, 0), + (5, 'Compensación', 400.00, DATE_ADD(util.VN_CURDATE(), INTERVAL -15 DAY), 9, 3, 1103, DATE_ADD(util.VN_CURDATE(), INTERVAL -15 DAY), 442, 0); INSERT INTO `vn`.`workerTeam`(`id`, `team`, `workerFk`) - VALUES - (1, 1, 9), - (2, 2, 18), - (3, 2, 19), - (4, 3, 1101), - (5, 3, 1102), - (6, 4, 1103), - (7, 4, 1104); + VALUES + (1, 1, 9), + (2, 2, 18), + (3, 2, 19), + (4, 3, 1101), + (5, 3, 1102), + (6, 4, 1103), + (7, 4, 1104); INSERT INTO `vn`.`ticketRequest`(`id`, `description`, `requesterFk`, `attenderFk`, `quantity`, `itemFk`, `price`, `isOk`, `saleFk`, `ticketFk`, `created`) - VALUES - (1, 'Ranged weapon longbow 200cm', 18, 35, 5, 1, 9.10, 1, 1, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -15 DAY)), - (2, 'Melee weapon combat first 15cm', 18, 35, 10, 2, 1.07, 0, NULL, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -15 DAY)), - (3, 'Melee weapon heavy shield 100cm', 18, 35, 20, NULL, 3.06, NULL, NULL, 23, util.VN_CURDATE()), - (4, 'Melee weapon combat first 15cm', 18, 35, 15, NULL, 1.30, NULL, NULL, 11, util.VN_CURDATE()), - (5, 'Melee weapon combat first 15cm', 18, 35, 15, 4, 1.30, 0, NULL, 18, util.VN_CURDATE()); + VALUES + (1, 'Ranged weapon longbow 200cm', 18, 35, 5, 1, 9.10, 1, 1, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -15 DAY)), + (2, 'Melee weapon combat first 15cm', 18, 35, 10, 2, 1.07, 0, NULL, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -15 DAY)), + (3, 'Melee weapon heavy shield 100cm', 18, 35, 20, NULL, 3.06, NULL, NULL, 23, util.VN_CURDATE()), + (4, 'Melee weapon combat first 15cm', 18, 35, 15, NULL, 1.30, NULL, NULL, 11, util.VN_CURDATE()), + (5, 'Melee weapon combat first 15cm', 18, 35, 15, 4, 1.30, 0, NULL, 18, util.VN_CURDATE()); INSERT INTO `vn`.`ticketServiceType`(`id`, `name`, `expenseFk`) - VALUES - (1, 'Porte Agencia', 7001000000), - (2, 'Portes Retorno', 7001000000), - (3, 'Porte Carry', 7001000000), - (4, 'Cargo FITOSANITARIO', 4751000000), - (5, 'Documentos', 2000000000); + VALUES + (1, 'Porte Agencia', 7001000000), + (2, 'Portes Retorno', 7001000000), + (3, 'Porte Carry', 7001000000), + (4, 'Cargo FITOSANITARIO', 4751000000), + (5, 'Documentos', 2000000000); INSERT INTO `vn`.`ticketService`(`id`, `description`, `quantity`, `price`, `taxClassFk`, `ticketFk`, `ticketServiceTypeFk`) - VALUES - (1, 'Documentos', 1, 2.00, 1, 1, 1), - (2, 'Porte Agencia', 1, 10.00, 1, 2, 1), - (3, 'Documentos', 1, 5.50, 1, 11, 1), - (4, 'Documentos', 1, 2.00, 1, 9, 1), - (5, 'Documentos', 1, 2.00, 1, 8, 1); + VALUES + (1, 'Documentos', 1, 2.00, 1, 1, 1), + (2, 'Porte Agencia', 1, 10.00, 1, 2, 1), + (3, 'Documentos', 1, 5.50, 1, 11, 1), + (4, 'Documentos', 1, 2.00, 1, 9, 1), + (5, 'Documentos', 1, 2.00, 1, 8, 1); INSERT INTO `pbx`.`config` (id,defaultPrefix) - VALUES (1,'0034'); + VALUES (1,'0034'); INSERT IGNORE INTO `pbx`.`prefix` (country, prefix) - VALUES - ('es', '0034'), - ('fr', '0033'), - ('pt', '00351'); + VALUES + ('es', '0034'), + ('fr', '0033'), + ('pt', '00351'); INSERT INTO `pbx`.`sip`(`user_id`, `extension`) - VALUES - (1, 1010), - (3, 1101), - (5, 1102), - (9, 1201); + VALUES + (1, 1010), + (3, 1101), + (5, 1102), + (9, 1201); INSERT INTO `vn`.`professionalCategory` (`id`, `description`) - VALUES - (1, 'employee'), - (2, 'florist'); + VALUES + (1, 'employee'), + (2, 'florist'); INSERT INTO `vn`.`calendarType` (`id`, `description`, `hoursWeek`, `isPartial`) - VALUES - (1, 'General schedule', 40, 0); + VALUES + (1, 'General schedule', 40, 0); INSERT INTO `vn`.`workerBusinessAgreement` (`id`, `name`, `monthHolidays`, `yearHours`, `started`, `ended`) - VALUES(1, 'flowers', 2.5, 1830, '2001-01-01', NULL); + VALUES(1, 'flowers', 2.5, 1830, '2001-01-01', NULL); DROP TEMPORARY TABLE IF EXISTS tmp.worker; CREATE TEMPORARY TABLE tmp.worker - (PRIMARY KEY (id)) - ENGINE = MEMORY - SELECT w.id, w.id as `workerFk`, 'VNL', CONCAT(YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 YEAR)), '-12-25') as started, CONCAT(YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL +1 YEAR)), '-12-25') as ended, CONCAT('E-46-', RPAD(CONCAT(w.id, 9), 8, w.id)), NULL as `notes`, NULL as `departmentFk`, 23, 1 as `workerBusinessProfessionalCategoryFk`, 1 as `calendarTypeFk`, 1 as `isHourlyLabor`, 1 as `workerBusinessAgreementFk`, 1 as `workcenterFk` + (PRIMARY KEY (id)) + ENGINE = MEMORY + SELECT w.id, w.id as `workerFk`, 'VNL', CONCAT(YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 YEAR)), '-12-25') as started, CONCAT(YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL +1 YEAR)), '-12-25') as ended, CONCAT('E-46-', RPAD(CONCAT(w.id, 9), 8, w.id)), NULL as `notes`, NULL as `departmentFk`, 23, 1 as `workerBusinessProfessionalCategoryFk`, 1 as `calendarTypeFk`, 1 as `isHourlyLabor`, 1 as `workerBusinessAgreementFk`, 1 as `workcenterFk` FROM `vn`.`worker` `w`; INSERT INTO `vn`.`business`(`id`, `workerFk`, `companyCodeFk`, `started`, `ended`, `workerBusiness`, `reasonEndFk`, `notes`, `departmentFk`, `workerBusinessProfessionalCategoryFk`, `calendarTypeFk`, `isHourlyLabor`, `workerBusinessAgreementFk`, `workcenterFk`) @@ -2079,610 +2079,610 @@ INSERT INTO `vn`.`business`(`id`, `workerFk`, `companyCodeFk`, `started`, `ended DROP TEMPORARY TABLE IF EXISTS tmp.worker; CREATE TEMPORARY TABLE tmp.worker - (PRIMARY KEY (id)) - ENGINE = MEMORY - SELECT '1111' as 'id', w.id as `workerFk`, 'VNL', CONCAT(YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -2 YEAR)), '-12-25') as started, CONCAT(YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 YEAR)), '-12-24') as ended, CONCAT('E-46-', RPAD(CONCAT(w.id, 9), 8, w.id)), NULL as `notes`, NULL as `departmentFk`, 23, 1 as `workerBusinessProfessionalCategoryFk`, 1 as `calendarTypeFk`, 1 as `isHourlyLabor`, 1 as `workerBusinessAgreementFk`, 1 as `workcenterFk` + (PRIMARY KEY (id)) + ENGINE = MEMORY + SELECT '1111' as 'id', w.id as `workerFk`, 'VNL', CONCAT(YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -2 YEAR)), '-12-25') as started, CONCAT(YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 YEAR)), '-12-24') as ended, CONCAT('E-46-', RPAD(CONCAT(w.id, 9), 8, w.id)), NULL as `notes`, NULL as `departmentFk`, 23, 1 as `workerBusinessProfessionalCategoryFk`, 1 as `calendarTypeFk`, 1 as `isHourlyLabor`, 1 as `workerBusinessAgreementFk`, 1 as `workcenterFk` FROM `vn`.`worker` `w` WHERE `w`.`id` = 1109; INSERT INTO `vn`.`business` (`id`, `workerFk`, `companyCodeFk`, `started`, `ended`, `workerBusiness`, `reasonEndFk`, `notes`, `departmentFk`, `workerBusinessProfessionalCategoryFk`, `calendarTypeFk`, `isHourlyLabor`, `workerBusinessAgreementFk`, `workcenterFk`) - SELECT * FROM tmp.worker; + SELECT * FROM tmp.worker; DROP TEMPORARY TABLE IF EXISTS tmp.worker; UPDATE `vn`.`business` - SET `payedHolidays`= 8 - WHERE `id`= 1106; + SET `payedHolidays`= 8 + WHERE `id`= 1106; UPDATE `vn`.`business` b - SET b.`workerBusinessProfessionalCategoryFk` = 2 - WHERE b.`workerFk` = 1110; + SET b.`workerBusinessProfessionalCategoryFk` = 2 + WHERE b.`workerFk` = 1110; UPDATE `vn`.`business` b - SET b.`departmentFk` = 43 - WHERE b.id IN(18, 19); + SET b.`departmentFk` = 43 + WHERE b.id IN(18, 19); UPDATE `vn`.`business` b - SET b.`started` = b.`started` - INTERVAL 100 DAY - WHERE b.id = 1107; + SET b.`started` = b.`started` - INTERVAL 100 DAY + WHERE b.id = 1107; INSERT INTO `vn`.`workCenterHoliday` (`workCenterFk`, `days`, `year`) - VALUES - ('1', '27.5', YEAR(util.VN_CURDATE())), - ('5', '22', YEAR(util.VN_CURDATE())), - ('1', '24.5', YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 YEAR))), - ('5', '23', YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 YEAR))); + VALUES + ('1', '27.5', YEAR(util.VN_CURDATE())), + ('5', '22', YEAR(util.VN_CURDATE())), + ('1', '24.5', YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 YEAR))), + ('5', '23', YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 YEAR))); INSERT INTO `vn`.`workerBusinessType` (`id`, `name`, `isFullTime`, `isPermanent`, `hasHolidayEntitlement`) - VALUES - (1, 'CONTRATO HOLANDA', 1, 0, 1), - (100, 'INDEFINIDO A TIEMPO COMPLETO', 1, 1, 1), - (109, 'CONVERSION DE TEMPORAL EN INDEFINIDO T.COMPLETO', 1, 1, 1); + VALUES + (1, 'CONTRATO HOLANDA', 1, 0, 1), + (100, 'INDEFINIDO A TIEMPO COMPLETO', 1, 1, 1), + (109, 'CONVERSION DE TEMPORAL EN INDEFINIDO T.COMPLETO', 1, 1, 1); UPDATE `vn`.`business` b - SET `rate` = 7, - `workerBusinessTypeFk` = 100, - `amount` = 900.50 - WHERE b.id = 1; + SET `rate` = 7, + `workerBusinessTypeFk` = 100, + `amount` = 900.50 + WHERE b.id = 1; UPDATE `vn`.`business` b - SET `rate` = 7, - `workerBusinessTypeFk` = 100, - `amount` = 1263.03 - WHERE b.id = 1106; + SET `rate` = 7, + `workerBusinessTypeFk` = 100, + `amount` = 1263.03 + WHERE b.id = 1106; UPDATE `vn`.`business` b - SET `rate` = 7, - `workerBusinessTypeFk` = 100, - `amount` = 2000 - WHERE b.id = 1107; + SET `rate` = 7, + `workerBusinessTypeFk` = 100, + `amount` = 2000 + WHERE b.id = 1107; UPDATE `vn`.`business` b - SET `rate` = 7, - `workerBusinessTypeFk` = 100, - `amount` = 1500 - WHERE b.id = 1108; + SET `rate` = 7, + `workerBusinessTypeFk` = 100, + `amount` = 1500 + WHERE b.id = 1108; INSERT INTO `vn`.`absenceType` (`id`, `name`, `rgb`, `code`, `holidayEntitlementRate`, `discountRate`) - VALUES - (1, 'Holidays', '#FF4444', 'holiday', 0, 0), - (2, 'Leave of absence', '#C71585', 'absence', 0, 1), - (6, 'Half holiday', '#E65F00', 'halfHoliday', 0, 0.5), - (15, 'Half Paid Leave', '#5151c0', 'halfPaidLeave', 0, 1), - (20, 'Furlough', '#97B92F', 'furlough', 1, 1), - (21, 'Furlough half day', '#778899', 'halfFurlough', 0.5, 1); + VALUES + (1, 'Holidays', '#FF4444', 'holiday', 0, 0), + (2, 'Leave of absence', '#C71585', 'absence', 0, 1), + (6, 'Half holiday', '#E65F00', 'halfHoliday', 0, 0.5), + (15, 'Half Paid Leave', '#5151c0', 'halfPaidLeave', 0, 1), + (20, 'Furlough', '#97B92F', 'furlough', 1, 1), + (21, 'Furlough half day', '#778899', 'halfFurlough', 0.5, 1); INSERT INTO `vn`.`calendar` (`businessFk`, `dayOffTypeFk`, `dated`) - VALUES - (1, 6, IF(MONTH(util.VN_CURDATE()) = 12 AND DAY(util.VN_CURDATE()) > 10, util.VN_CURDATE() - INTERVAL 10 DAY, util.VN_CURDATE() + INTERVAL 10 DAY)), - (1106, 1, IF(MONTH(util.VN_CURDATE()) = 12 AND DAY(util.VN_CURDATE()) > 10, util.VN_CURDATE() - INTERVAL 10 DAY, util.VN_CURDATE() + INTERVAL 10 DAY)), - (1106, 1, IF(MONTH(util.VN_CURDATE()) = 12 AND DAY(util.VN_CURDATE()) > 10, util.VN_CURDATE() - INTERVAL 11 DAY, util.VN_CURDATE() + INTERVAL 11 DAY)), - (1106, 1, IF(MONTH(util.VN_CURDATE()) = 12 AND DAY(util.VN_CURDATE()) > 10, util.VN_CURDATE() - INTERVAL 12 DAY, util.VN_CURDATE() + INTERVAL 12 DAY)), - (1106, 1, IF(MONTH(util.VN_CURDATE()) = 12 AND DAY(util.VN_CURDATE()) > 10, util.VN_CURDATE() - INTERVAL 20 DAY, util.VN_CURDATE() + INTERVAL 20 DAY)), - (1106, 2, IF(MONTH(util.VN_CURDATE()) >= 1 AND DAY(util.VN_CURDATE()) > 20, util.VN_CURDATE() - INTERVAL 13 DAY, util.VN_CURDATE() + INTERVAL 8 DAY)), - (1106, 1, IF(MONTH(util.VN_CURDATE()) >= 1 AND DAY(util.VN_CURDATE()) > 20, util.VN_CURDATE() - INTERVAL 14 DAY, util.VN_CURDATE() + INTERVAL 9 DAY)), - (1106, 2, IF(MONTH(util.VN_CURDATE()) >= 1 AND DAY(util.VN_CURDATE()) > 20, util.VN_CURDATE() - INTERVAL 15 DAY, util.VN_CURDATE() + INTERVAL 7 DAY)), - (1107, 1, IF(MONTH(util.VN_CURDATE()) = 12 AND DAY(util.VN_CURDATE()) > 10, util.VN_CURDATE() - INTERVAL 10 DAY, util.VN_CURDATE() + INTERVAL 10 DAY)), - (1107, 1, IF(MONTH(util.VN_CURDATE()) = 12 AND DAY(util.VN_CURDATE()) > 10, util.VN_CURDATE() - INTERVAL 11 DAY, util.VN_CURDATE() + INTERVAL 11 DAY)), - (1107, 1, IF(MONTH(util.VN_CURDATE()) = 12 AND DAY(util.VN_CURDATE()) > 10, util.VN_CURDATE() - INTERVAL 12 DAY, util.VN_CURDATE() + INTERVAL 12 DAY)), - (1107, 1, IF(MONTH(util.VN_CURDATE()) = 12 AND DAY(util.VN_CURDATE()) > 10, util.VN_CURDATE() - INTERVAL 20 DAY, util.VN_CURDATE() + INTERVAL 20 DAY)), - (1107, 2, IF(MONTH(util.VN_CURDATE()) >= 1 AND DAY(util.VN_CURDATE()) > 20, util.VN_CURDATE() - INTERVAL 13 DAY, util.VN_CURDATE() + INTERVAL 8 DAY)), - (1107, 1, IF(MONTH(util.VN_CURDATE()) >= 1 AND DAY(util.VN_CURDATE()) > 20, util.VN_CURDATE() - INTERVAL 14 DAY, util.VN_CURDATE() + INTERVAL 9 DAY)), - (1107, 2, IF(MONTH(util.VN_CURDATE()) >= 1 AND DAY(util.VN_CURDATE()) > 20, util.VN_CURDATE() - INTERVAL 15 DAY, util.VN_CURDATE() + INTERVAL 7 DAY)), - (1107, 2, util.VN_CURDATE() - INTERVAL 16 DAY); + VALUES + (1, 6, IF(MONTH(util.VN_CURDATE()) = 12 AND DAY(util.VN_CURDATE()) > 10, util.VN_CURDATE() - INTERVAL 10 DAY, util.VN_CURDATE() + INTERVAL 10 DAY)), + (1106, 1, IF(MONTH(util.VN_CURDATE()) = 12 AND DAY(util.VN_CURDATE()) > 10, util.VN_CURDATE() - INTERVAL 10 DAY, util.VN_CURDATE() + INTERVAL 10 DAY)), + (1106, 1, IF(MONTH(util.VN_CURDATE()) = 12 AND DAY(util.VN_CURDATE()) > 10, util.VN_CURDATE() - INTERVAL 11 DAY, util.VN_CURDATE() + INTERVAL 11 DAY)), + (1106, 1, IF(MONTH(util.VN_CURDATE()) = 12 AND DAY(util.VN_CURDATE()) > 10, util.VN_CURDATE() - INTERVAL 12 DAY, util.VN_CURDATE() + INTERVAL 12 DAY)), + (1106, 1, IF(MONTH(util.VN_CURDATE()) = 12 AND DAY(util.VN_CURDATE()) > 10, util.VN_CURDATE() - INTERVAL 20 DAY, util.VN_CURDATE() + INTERVAL 20 DAY)), + (1106, 2, IF(MONTH(util.VN_CURDATE()) >= 1 AND DAY(util.VN_CURDATE()) > 20, util.VN_CURDATE() - INTERVAL 13 DAY, util.VN_CURDATE() + INTERVAL 8 DAY)), + (1106, 1, IF(MONTH(util.VN_CURDATE()) >= 1 AND DAY(util.VN_CURDATE()) > 20, util.VN_CURDATE() - INTERVAL 14 DAY, util.VN_CURDATE() + INTERVAL 9 DAY)), + (1106, 2, IF(MONTH(util.VN_CURDATE()) >= 1 AND DAY(util.VN_CURDATE()) > 20, util.VN_CURDATE() - INTERVAL 15 DAY, util.VN_CURDATE() + INTERVAL 7 DAY)), + (1107, 1, IF(MONTH(util.VN_CURDATE()) = 12 AND DAY(util.VN_CURDATE()) > 10, util.VN_CURDATE() - INTERVAL 10 DAY, util.VN_CURDATE() + INTERVAL 10 DAY)), + (1107, 1, IF(MONTH(util.VN_CURDATE()) = 12 AND DAY(util.VN_CURDATE()) > 10, util.VN_CURDATE() - INTERVAL 11 DAY, util.VN_CURDATE() + INTERVAL 11 DAY)), + (1107, 1, IF(MONTH(util.VN_CURDATE()) = 12 AND DAY(util.VN_CURDATE()) > 10, util.VN_CURDATE() - INTERVAL 12 DAY, util.VN_CURDATE() + INTERVAL 12 DAY)), + (1107, 1, IF(MONTH(util.VN_CURDATE()) = 12 AND DAY(util.VN_CURDATE()) > 10, util.VN_CURDATE() - INTERVAL 20 DAY, util.VN_CURDATE() + INTERVAL 20 DAY)), + (1107, 2, IF(MONTH(util.VN_CURDATE()) >= 1 AND DAY(util.VN_CURDATE()) > 20, util.VN_CURDATE() - INTERVAL 13 DAY, util.VN_CURDATE() + INTERVAL 8 DAY)), + (1107, 1, IF(MONTH(util.VN_CURDATE()) >= 1 AND DAY(util.VN_CURDATE()) > 20, util.VN_CURDATE() - INTERVAL 14 DAY, util.VN_CURDATE() + INTERVAL 9 DAY)), + (1107, 2, IF(MONTH(util.VN_CURDATE()) >= 1 AND DAY(util.VN_CURDATE()) > 20, util.VN_CURDATE() - INTERVAL 15 DAY, util.VN_CURDATE() + INTERVAL 7 DAY)), + (1107, 2, util.VN_CURDATE() - INTERVAL 16 DAY); INSERT INTO `vn`.`smsConfig` (`id`, `uri`, `title`, `apiKey`) - VALUES - ('1', 'https://api.gateway360.com/api/3.0/sms/send', 'Verdnatura', '5715476da95b46d686a5a255e6459523'); + VALUES + ('1', 'https://api.gateway360.com/api/3.0/sms/send', 'Verdnatura', '5715476da95b46d686a5a255e6459523'); INSERT INTO `vn`.`sharingClient`(`id`, `workerFk`, `started`, `ended`, `clientFk`) - VALUES - (1, 19, DATE_ADD(util.VN_CURDATE(), INTERVAL -5 DAY), DATE_ADD(util.VN_CURDATE(), INTERVAL +15 DAY), 1101), - (2, 18, DATE_ADD(util.VN_CURDATE(), INTERVAL -5 DAY), DATE_ADD(util.VN_CURDATE(), INTERVAL +15 DAY), 1106); + VALUES + (1, 19, DATE_ADD(util.VN_CURDATE(), INTERVAL -5 DAY), DATE_ADD(util.VN_CURDATE(), INTERVAL +15 DAY), 1101), + (2, 18, DATE_ADD(util.VN_CURDATE(), INTERVAL -5 DAY), DATE_ADD(util.VN_CURDATE(), INTERVAL +15 DAY), 1106); INSERT INTO `vn`.`sharingCart`(`id`, `workerFk`, `started`, `ended`, `workerSubstitute`, `created`) - VALUES - (1, 18, DATE_ADD(util.VN_CURDATE(), INTERVAL -5 DAY), DATE_ADD(util.VN_CURDATE(), INTERVAL +15 DAY), 19, DATE_ADD(util.VN_CURDATE(), INTERVAL -5 DAY)); + VALUES + (1, 18, DATE_ADD(util.VN_CURDATE(), INTERVAL -5 DAY), DATE_ADD(util.VN_CURDATE(), INTERVAL +15 DAY), 19, DATE_ADD(util.VN_CURDATE(), INTERVAL -5 DAY)); CALL `vn`.zoneGeo_calcTree(); -- this is an auto calculate for table vn.zoneGeo, columns: path,lft,rgt,depth,sons INSERT INTO `vn`.`zoneIncluded` (`zoneFk`, `geoFk`, `isIncluded`) - VALUES - (1, 3, 0), - (1, 4, 0), - (1, 5, 0), - (1, 1, 1), - (2, 3, 0), - (2, 4, 0), - (2, 5, 0), - (2, 1, 1), - (3, 3, 0), - (3, 4, 0), - (3, 5, 0), - (3, 1, 1), - (4, 3, 0), - (4, 4, 0), - (4, 5, 0), - (4, 1, 1), - (5, 3, 1), - (5, 4, 0), - (5, 5, 1), - (5, 1, 1), - (6, 3, 1), - (6, 4, 0), - (6, 5, 1), - (6, 1, 1), - (7, 3, 0), - (7, 4, 0), - (7, 5, 0), - (7, 1, 1), - (8, 3, 0), - (8, 4, 0), - (8, 5, 0), - (8, 1, 1), - (9, 7, 1), - (10, 14, 1); + VALUES + (1, 3, 0), + (1, 4, 0), + (1, 5, 0), + (1, 1, 1), + (2, 3, 0), + (2, 4, 0), + (2, 5, 0), + (2, 1, 1), + (3, 3, 0), + (3, 4, 0), + (3, 5, 0), + (3, 1, 1), + (4, 3, 0), + (4, 4, 0), + (4, 5, 0), + (4, 1, 1), + (5, 3, 1), + (5, 4, 0), + (5, 5, 1), + (5, 1, 1), + (6, 3, 1), + (6, 4, 0), + (6, 5, 1), + (6, 1, 1), + (7, 3, 0), + (7, 4, 0), + (7, 5, 0), + (7, 1, 1), + (8, 3, 0), + (8, 4, 0), + (8, 5, 0), + (8, 1, 1), + (9, 7, 1), + (10, 14, 1); INSERT INTO `vn`.`zoneEvent`(`zoneFk`, `type`, `dated`) - VALUES - (1, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL (IF(DAYOFWEEK(util.VN_CURDATE())<=2, 2, 9) - DAYOFWEEK(util.VN_CURDATE())) DAY)), - (1, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL (IF(DAYOFWEEK(util.VN_CURDATE())<=3, 3, 10) - DAYOFWEEK(util.VN_CURDATE())) DAY)), - (1, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL (IF(DAYOFWEEK(util.VN_CURDATE())<=4, 4, 11) - DAYOFWEEK(util.VN_CURDATE())) DAY)), - (1, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL (IF(DAYOFWEEK(util.VN_CURDATE())<=5, 5, 12) - DAYOFWEEK(util.VN_CURDATE())) DAY)), - (1, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL (IF(DAYOFWEEK(util.VN_CURDATE())<=6, 6, 13) - DAYOFWEEK(util.VN_CURDATE())) DAY)), - (2, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL (IF(DAYOFWEEK(util.VN_CURDATE())<=2, 2, 9) - DAYOFWEEK(util.VN_CURDATE())) DAY)), - (2, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL (IF(DAYOFWEEK(util.VN_CURDATE())<=3, 3, 10) - DAYOFWEEK(util.VN_CURDATE())) DAY)), - (2, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL (IF(DAYOFWEEK(util.VN_CURDATE())<=4, 4, 11) - DAYOFWEEK(util.VN_CURDATE())) DAY)), - (2, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL (IF(DAYOFWEEK(util.VN_CURDATE())<=5, 5, 12) - DAYOFWEEK(util.VN_CURDATE())) DAY)), - (2, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL (IF(DAYOFWEEK(util.VN_CURDATE())<=6, 6, 13) - DAYOFWEEK(util.VN_CURDATE())) DAY)), - (3, 'day', util.VN_CURDATE()), - (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +1 DAY)), - (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +2 DAY)), - (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +3 DAY)), - (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +4 DAY)), - (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +5 DAY)), - (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +6 DAY)), - (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +7 DAY)), - (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +8 DAY)), - (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +9 DAY)), - (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +10 DAY)), - (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +11 DAY)), - (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +12 DAY)), - (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +13 DAY)), - (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +14 DAY)), - (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +15 DAY)), - (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +16 DAY)), - (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +17 DAY)), - (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +18 DAY)), - (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +19 DAY)), - (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +20 DAY)), - (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +21 DAY)), - (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +22 DAY)), - (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +23 DAY)), - (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +24 DAY)), - (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +25 DAY)), - (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +26 DAY)), - (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +27 DAY)), - (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +28 DAY)), - (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +29 DAY)), - (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +30 DAY)), - (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +31 DAY)), - (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +32 DAY)), - (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +33 DAY)), - (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +34 DAY)), - (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +35 DAY)), - (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +36 DAY)), - (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +37 DAY)), - (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +38 DAY)), - (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +39 DAY)), - (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +40 DAY)), - (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +41 DAY)), - (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +42 DAY)), - (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +43 DAY)), - (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +44 DAY)), - (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +45 DAY)), - (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +46 DAY)), - (4, 'day', util.VN_CURDATE()), - (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +1 DAY)), - (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +2 DAY)), - (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +3 DAY)), - (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +4 DAY)), - (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +5 DAY)), - (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +6 DAY)), - (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +7 DAY)), - (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +8 DAY)), - (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +9 DAY)), - (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +10 DAY)), - (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +11 DAY)), - (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +12 DAY)), - (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +13 DAY)), - (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +14 DAY)), - (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +15 DAY)), - (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +16 DAY)), - (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +17 DAY)), - (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +18 DAY)), - (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +19 DAY)), - (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +20 DAY)), - (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +21 DAY)), - (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +22 DAY)), - (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +23 DAY)), - (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +24 DAY)), - (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +25 DAY)), - (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +26 DAY)), - (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +27 DAY)), - (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +28 DAY)), - (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +29 DAY)), - (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +30 DAY)), - (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +31 DAY)), - (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +32 DAY)), - (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +33 DAY)), - (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +34 DAY)), - (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +35 DAY)), - (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +36 DAY)), - (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +37 DAY)), - (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +38 DAY)), - (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +39 DAY)), - (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +40 DAY)), - (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +41 DAY)), - (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +42 DAY)), - (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +43 DAY)), - (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +44 DAY)), - (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +45 DAY)), - (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +46 DAY)), - (5, 'day', util.VN_CURDATE()), - (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +1 DAY)), - (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +2 DAY)), - (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +3 DAY)), - (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +4 DAY)), - (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +5 DAY)), - (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +6 DAY)), - (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +7 DAY)), - (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +8 DAY)), - (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +9 DAY)), - (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +10 DAY)), - (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +11 DAY)), - (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +12 DAY)), - (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +13 DAY)), - (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +14 DAY)), - (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +15 DAY)), - (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +16 DAY)), - (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +17 DAY)), - (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +18 DAY)), - (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +19 DAY)), - (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +20 DAY)), - (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +21 DAY)), - (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +22 DAY)), - (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +23 DAY)), - (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +24 DAY)), - (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +25 DAY)), - (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +26 DAY)), - (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +27 DAY)), - (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +28 DAY)), - (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +29 DAY)), - (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +30 DAY)), - (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +31 DAY)), - (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +32 DAY)), - (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +33 DAY)), - (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +34 DAY)), - (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +35 DAY)), - (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +36 DAY)), - (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +37 DAY)), - (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +38 DAY)), - (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +39 DAY)), - (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +40 DAY)), - (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +41 DAY)), - (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +42 DAY)), - (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +43 DAY)), - (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +44 DAY)), - (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +45 DAY)), - (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +46 DAY)), - (6, 'day', util.VN_CURDATE()), - (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +1 DAY)), - (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +2 DAY)), - (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +3 DAY)), - (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +4 DAY)), - (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +5 DAY)), - (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +6 DAY)), - (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +7 DAY)), - (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +8 DAY)), - (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +9 DAY)), - (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +10 DAY)), - (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +11 DAY)), - (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +12 DAY)), - (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +13 DAY)), - (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +14 DAY)), - (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +15 DAY)), - (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +16 DAY)), - (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +17 DAY)), - (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +18 DAY)), - (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +19 DAY)), - (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +20 DAY)), - (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +21 DAY)), - (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +22 DAY)), - (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +23 DAY)), - (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +24 DAY)), - (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +25 DAY)), - (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +26 DAY)), - (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +27 DAY)), - (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +28 DAY)), - (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +29 DAY)), - (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +30 DAY)), - (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +31 DAY)), - (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +32 DAY)), - (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +33 DAY)), - (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +34 DAY)), - (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +35 DAY)), - (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +36 DAY)), - (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +37 DAY)), - (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +38 DAY)), - (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +39 DAY)), - (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +40 DAY)), - (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +41 DAY)), - (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +42 DAY)), - (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +43 DAY)), - (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +44 DAY)), - (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +45 DAY)), - (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +46 DAY)), - (7, 'day', util.VN_CURDATE()), - (7, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +1 DAY)), - (7, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +2 DAY)), - (7, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +3 DAY)), - (7, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +4 DAY)), - (7, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +5 DAY)), - (7, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +6 DAY)); + VALUES + (1, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL (IF(DAYOFWEEK(util.VN_CURDATE())<=2, 2, 9) - DAYOFWEEK(util.VN_CURDATE())) DAY)), + (1, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL (IF(DAYOFWEEK(util.VN_CURDATE())<=3, 3, 10) - DAYOFWEEK(util.VN_CURDATE())) DAY)), + (1, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL (IF(DAYOFWEEK(util.VN_CURDATE())<=4, 4, 11) - DAYOFWEEK(util.VN_CURDATE())) DAY)), + (1, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL (IF(DAYOFWEEK(util.VN_CURDATE())<=5, 5, 12) - DAYOFWEEK(util.VN_CURDATE())) DAY)), + (1, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL (IF(DAYOFWEEK(util.VN_CURDATE())<=6, 6, 13) - DAYOFWEEK(util.VN_CURDATE())) DAY)), + (2, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL (IF(DAYOFWEEK(util.VN_CURDATE())<=2, 2, 9) - DAYOFWEEK(util.VN_CURDATE())) DAY)), + (2, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL (IF(DAYOFWEEK(util.VN_CURDATE())<=3, 3, 10) - DAYOFWEEK(util.VN_CURDATE())) DAY)), + (2, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL (IF(DAYOFWEEK(util.VN_CURDATE())<=4, 4, 11) - DAYOFWEEK(util.VN_CURDATE())) DAY)), + (2, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL (IF(DAYOFWEEK(util.VN_CURDATE())<=5, 5, 12) - DAYOFWEEK(util.VN_CURDATE())) DAY)), + (2, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL (IF(DAYOFWEEK(util.VN_CURDATE())<=6, 6, 13) - DAYOFWEEK(util.VN_CURDATE())) DAY)), + (3, 'day', util.VN_CURDATE()), + (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +1 DAY)), + (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +2 DAY)), + (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +3 DAY)), + (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +4 DAY)), + (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +5 DAY)), + (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +6 DAY)), + (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +7 DAY)), + (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +8 DAY)), + (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +9 DAY)), + (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +10 DAY)), + (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +11 DAY)), + (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +12 DAY)), + (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +13 DAY)), + (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +14 DAY)), + (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +15 DAY)), + (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +16 DAY)), + (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +17 DAY)), + (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +18 DAY)), + (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +19 DAY)), + (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +20 DAY)), + (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +21 DAY)), + (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +22 DAY)), + (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +23 DAY)), + (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +24 DAY)), + (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +25 DAY)), + (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +26 DAY)), + (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +27 DAY)), + (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +28 DAY)), + (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +29 DAY)), + (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +30 DAY)), + (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +31 DAY)), + (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +32 DAY)), + (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +33 DAY)), + (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +34 DAY)), + (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +35 DAY)), + (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +36 DAY)), + (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +37 DAY)), + (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +38 DAY)), + (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +39 DAY)), + (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +40 DAY)), + (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +41 DAY)), + (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +42 DAY)), + (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +43 DAY)), + (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +44 DAY)), + (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +45 DAY)), + (3, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +46 DAY)), + (4, 'day', util.VN_CURDATE()), + (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +1 DAY)), + (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +2 DAY)), + (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +3 DAY)), + (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +4 DAY)), + (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +5 DAY)), + (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +6 DAY)), + (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +7 DAY)), + (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +8 DAY)), + (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +9 DAY)), + (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +10 DAY)), + (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +11 DAY)), + (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +12 DAY)), + (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +13 DAY)), + (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +14 DAY)), + (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +15 DAY)), + (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +16 DAY)), + (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +17 DAY)), + (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +18 DAY)), + (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +19 DAY)), + (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +20 DAY)), + (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +21 DAY)), + (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +22 DAY)), + (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +23 DAY)), + (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +24 DAY)), + (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +25 DAY)), + (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +26 DAY)), + (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +27 DAY)), + (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +28 DAY)), + (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +29 DAY)), + (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +30 DAY)), + (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +31 DAY)), + (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +32 DAY)), + (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +33 DAY)), + (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +34 DAY)), + (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +35 DAY)), + (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +36 DAY)), + (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +37 DAY)), + (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +38 DAY)), + (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +39 DAY)), + (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +40 DAY)), + (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +41 DAY)), + (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +42 DAY)), + (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +43 DAY)), + (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +44 DAY)), + (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +45 DAY)), + (4, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +46 DAY)), + (5, 'day', util.VN_CURDATE()), + (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +1 DAY)), + (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +2 DAY)), + (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +3 DAY)), + (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +4 DAY)), + (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +5 DAY)), + (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +6 DAY)), + (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +7 DAY)), + (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +8 DAY)), + (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +9 DAY)), + (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +10 DAY)), + (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +11 DAY)), + (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +12 DAY)), + (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +13 DAY)), + (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +14 DAY)), + (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +15 DAY)), + (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +16 DAY)), + (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +17 DAY)), + (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +18 DAY)), + (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +19 DAY)), + (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +20 DAY)), + (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +21 DAY)), + (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +22 DAY)), + (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +23 DAY)), + (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +24 DAY)), + (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +25 DAY)), + (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +26 DAY)), + (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +27 DAY)), + (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +28 DAY)), + (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +29 DAY)), + (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +30 DAY)), + (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +31 DAY)), + (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +32 DAY)), + (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +33 DAY)), + (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +34 DAY)), + (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +35 DAY)), + (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +36 DAY)), + (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +37 DAY)), + (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +38 DAY)), + (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +39 DAY)), + (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +40 DAY)), + (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +41 DAY)), + (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +42 DAY)), + (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +43 DAY)), + (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +44 DAY)), + (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +45 DAY)), + (5, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +46 DAY)), + (6, 'day', util.VN_CURDATE()), + (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +1 DAY)), + (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +2 DAY)), + (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +3 DAY)), + (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +4 DAY)), + (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +5 DAY)), + (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +6 DAY)), + (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +7 DAY)), + (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +8 DAY)), + (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +9 DAY)), + (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +10 DAY)), + (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +11 DAY)), + (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +12 DAY)), + (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +13 DAY)), + (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +14 DAY)), + (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +15 DAY)), + (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +16 DAY)), + (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +17 DAY)), + (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +18 DAY)), + (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +19 DAY)), + (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +20 DAY)), + (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +21 DAY)), + (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +22 DAY)), + (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +23 DAY)), + (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +24 DAY)), + (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +25 DAY)), + (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +26 DAY)), + (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +27 DAY)), + (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +28 DAY)), + (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +29 DAY)), + (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +30 DAY)), + (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +31 DAY)), + (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +32 DAY)), + (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +33 DAY)), + (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +34 DAY)), + (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +35 DAY)), + (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +36 DAY)), + (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +37 DAY)), + (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +38 DAY)), + (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +39 DAY)), + (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +40 DAY)), + (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +41 DAY)), + (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +42 DAY)), + (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +43 DAY)), + (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +44 DAY)), + (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +45 DAY)), + (6, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +46 DAY)), + (7, 'day', util.VN_CURDATE()), + (7, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +1 DAY)), + (7, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +2 DAY)), + (7, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +3 DAY)), + (7, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +4 DAY)), + (7, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +5 DAY)), + (7, 'day', DATE_ADD(util.VN_CURDATE(), INTERVAL +6 DAY)); INSERT INTO `vn`.`zoneEvent`(`zoneFk`, `type`, `weekDays`) - VALUES - (8, 'indefinitely', 'mon,tue,wed,thu,fri,sat,sun'), - (10, 'indefinitely', 'mon,tue,wed,thu,fri,sat,sun'); + VALUES + (8, 'indefinitely', 'mon,tue,wed,thu,fri,sat,sun'), + (10, 'indefinitely', 'mon,tue,wed,thu,fri,sat,sun'); INSERT INTO `vn`.`zoneEvent`(`zoneFk`, `type`, `started`, `ended`, `weekDays`) - VALUES - (9, 'range', DATE_ADD(util.VN_CURDATE(), INTERVAL -1 YEAR), DATE_ADD(util.VN_CURDATE(), INTERVAL +1 YEAR), 'mon'), - (9, 'range', util.VN_CURDATE(), NULL, 'tue'), - (9, 'range', NULL, util.VN_CURDATE(), 'wed'); + VALUES + (9, 'range', DATE_ADD(util.VN_CURDATE(), INTERVAL -1 YEAR), DATE_ADD(util.VN_CURDATE(), INTERVAL +1 YEAR), 'mon'), + (9, 'range', util.VN_CURDATE(), NULL, 'tue'), + (9, 'range', NULL, util.VN_CURDATE(), 'wed'); INSERT INTO `vn`.`workerTimeControl`(`userFk`, `timed`, `manual`, `direction`, `isSendMail`) - VALUES - (1106, CONCAT(util.VN_CURDATE(), ' 07:00'), TRUE, 'in', 0), - (1106, CONCAT(util.VN_CURDATE(), ' 10:00'), TRUE, 'middle', 0), - (1106, CONCAT(util.VN_CURDATE(), ' 10:20'), TRUE, 'middle', 0), - (1106, CONCAT(util.VN_CURDATE(), ' 14:50'), TRUE, 'out', 0), - (1107, CONCAT(util.VN_CURDATE(), ' 07:00'), TRUE, 'in', 1), - (1107, CONCAT(util.VN_CURDATE(), ' 10:00'), TRUE, 'middle', 1), - (1107, CONCAT(util.VN_CURDATE(), ' 10:20'), TRUE, 'middle', 1), - (1107, CONCAT(util.VN_CURDATE(), ' 14:50'), TRUE, 'out', 1); + VALUES + (1106, CONCAT(util.VN_CURDATE(), ' 07:00'), TRUE, 'in', 0), + (1106, CONCAT(util.VN_CURDATE(), ' 10:00'), TRUE, 'middle', 0), + (1106, CONCAT(util.VN_CURDATE(), ' 10:20'), TRUE, 'middle', 0), + (1106, CONCAT(util.VN_CURDATE(), ' 14:50'), TRUE, 'out', 0), + (1107, CONCAT(util.VN_CURDATE(), ' 07:00'), TRUE, 'in', 1), + (1107, CONCAT(util.VN_CURDATE(), ' 10:00'), TRUE, 'middle', 1), + (1107, CONCAT(util.VN_CURDATE(), ' 10:20'), TRUE, 'middle', 1), + (1107, CONCAT(util.VN_CURDATE(), ' 14:50'), TRUE, 'out', 1); INSERT INTO `vn`.`dmsType` (`id`, `name`, `readRoleFk`, `writeRoleFk`, `code`) - VALUES - (1, 'Facturas Recibidas', 1, 1, 'invoiceIn'), - (2, 'Doc oficial', NULL, NULL, 'officialDoc'), - (3, 'Laboral', 37, 37, 'hhrrData'), - (4, 'Albaranes recibidos', NULL, NULL, 'deliveryNote'), - (5, 'Otros', 1, 1, 'miscellaneous'), - (6, 'Pruebas', NULL, NULL, 'tests'), - (7, 'IAE Clientes', 1, 1, 'economicActivitiesTax'), - (8, 'Fiscal', NULL, NULL, 'fiscal'), - (9, 'Vehiculos', NULL, NULL, 'vehicles'), - (10, 'Plantillas', NULL, NULL, 'templates'), - (11, 'Contratos', NULL, NULL, 'contracts'), - (12, 'ley de pagos', 1, 1, 'paymentsLaw'), - (13, 'Basura', 1, 1, 'trash'), - (14, 'Ticket', 1, 1, 'ticket'), - (15, 'Presupuestos', NULL, NULL, 'budgets'), - (16, 'Logistica', NULL, NULL, 'logistics'), - (17, 'cmr', 1, 1, 'cmr'), - (18, 'dua', NULL, NULL, 'dua'), - (19, 'inmovilizado', NULL, NULL, 'fixedAssets'), - (20, 'Reclamación', 1, 1, 'claim'), - (21, 'Entrada', 1, 1, 'entry'), + VALUES + (1, 'Facturas Recibidas', 1, 1, 'invoiceIn'), + (2, 'Doc oficial', NULL, NULL, 'officialDoc'), + (3, 'Laboral', 37, 37, 'hhrrData'), + (4, 'Albaranes recibidos', NULL, NULL, 'deliveryNote'), + (5, 'Otros', 1, 1, 'miscellaneous'), + (6, 'Pruebas', NULL, NULL, 'tests'), + (7, 'IAE Clientes', 1, 1, 'economicActivitiesTax'), + (8, 'Fiscal', NULL, NULL, 'fiscal'), + (9, 'Vehiculos', NULL, NULL, 'vehicles'), + (10, 'Plantillas', NULL, NULL, 'templates'), + (11, 'Contratos', NULL, NULL, 'contracts'), + (12, 'ley de pagos', 1, 1, 'paymentsLaw'), + (13, 'Basura', 1, 1, 'trash'), + (14, 'Ticket', 1, 1, 'ticket'), + (15, 'Presupuestos', NULL, NULL, 'budgets'), + (16, 'Logistica', NULL, NULL, 'logistics'), + (17, 'cmr', 1, 1, 'cmr'), + (18, 'dua', NULL, NULL, 'dua'), + (19, 'inmovilizado', NULL, NULL, 'fixedAssets'), + (20, 'Reclamación', 1, 1, 'claim'), + (21, 'Entrada', 1, 1, 'entry'), (22, 'Proveedor', 1, 1, 'supplier'), (23, 'Termografos', 35, 35, 'thermograph'), (24, 'Sello de calidad', 1, 1, 'qualitySeal'); INSERT INTO `vn`.`dms`(`id`, `dmsTypeFk`, `file`, `contentType`, `workerFk`, `warehouseFk`, `companyFk`, `hardCopyNumber`, `hasFile`, `reference`, `description`, `created`) - VALUES - (1, 14, '1.txt', 'text/plain', 5, 1, 442, NULL, FALSE, 'Ticket:11', 'Ticket:11 dms for the ticket', util.VN_CURDATE()), - (2, 5, '2.txt', 'text/plain', 5, 1, 442, 1, TRUE, 'Client:104', 'Client:104 dms for the client', util.VN_CURDATE()), - (3, 5, '3.txt', 'text/plain', 5, 1, 442, NULL, TRUE, 'Client: 104', 'Client:104 readme', util.VN_CURDATE()), - (4, 3, '4.txt', 'text/plain', 5, 1, 442, NULL, TRUE, 'Worker: 106', 'Worker:106 readme', util.VN_CURDATE()), - (5, 23, '5.txt', 'text/plain', 5, 1, 442, NULL, TRUE, 'travel: 1', 'dmsForThermograph', util.VN_CURDATE()), - (6, 5, '6.txt', 'text/plain', 5, 1, 442, NULL, TRUE, 'NotExists', 'DoesNotExists', util.VN_CURDATE()), - (7, 20, '7.jpg', 'image/jpeg', 9, 1, 442, NULL, FALSE, '1', 'TICKET ID DEL CLIENTE BRUCE WAYNE ID 1101', util.VN_CURDATE()), - (8, 20, '8.mp4', 'video/mp4', 9, 1, 442, NULL, FALSE, '1', 'TICKET ID DEL CLIENTE BRUCE WAYNE ID 1101', util.VN_CURDATE()), - (9, 21, '7.jpg', 'image/jpeg', 9, 1, 442, NULL, FALSE, '1', 'ENTRADA ID 1', util.VN_CURDATE()), + VALUES + (1, 14, '1.txt', 'text/plain', 5, 1, 442, NULL, FALSE, 'Ticket:11', 'Ticket:11 dms for the ticket', util.VN_CURDATE()), + (2, 5, '2.txt', 'text/plain', 5, 1, 442, 1, TRUE, 'Client:104', 'Client:104 dms for the client', util.VN_CURDATE()), + (3, 5, '3.txt', 'text/plain', 5, 1, 442, NULL, TRUE, 'Client: 104', 'Client:104 readme', util.VN_CURDATE()), + (4, 3, '4.txt', 'text/plain', 5, 1, 442, NULL, TRUE, 'Worker: 106', 'Worker:106 readme', util.VN_CURDATE()), + (5, 23, '5.txt', 'text/plain', 5, 1, 442, NULL, TRUE, 'travel: 1', 'dmsForThermograph', util.VN_CURDATE()), + (6, 5, '6.txt', 'text/plain', 5, 1, 442, NULL, TRUE, 'NotExists', 'DoesNotExists', util.VN_CURDATE()), + (7, 20, '7.jpg', 'image/jpeg', 9, 1, 442, NULL, FALSE, '1', 'TICKET ID DEL CLIENTE BRUCE WAYNE ID 1101', util.VN_CURDATE()), + (8, 20, '8.mp4', 'video/mp4', 9, 1, 442, NULL, FALSE, '1', 'TICKET ID DEL CLIENTE BRUCE WAYNE ID 1101', util.VN_CURDATE()), + (9, 21, '7.jpg', 'image/jpeg', 9, 1, 442, NULL, FALSE, '1', 'ENTRADA ID 1', util.VN_CURDATE()), (10, 21, '7.jpg', 'image/jpeg', 9, 1, 442, NULL, FALSE, '1', 'ENTRADA DE PRUEBA', util.VN_CURDATE()); INSERT INTO `vn`.`claimDms`(`claimFk`, `dmsFk`) - VALUES - (1, 7), - (1, 8); + VALUES + (1, 7), + (1, 8); INSERT INTO `vn`.`ticketDms`(`ticketFk`, `dmsFk`) - VALUES - (11, 1); + VALUES + (11, 1); INSERT INTO `vn`.`clientDms`(`clientFk`, `dmsFk`) - VALUES - (1104, 2), - (1104, 3); + VALUES + (1104, 2), + (1104, 3); INSERT INTO `vn`.`workerDms`(`id`, `workerFk`, `dmsFk`,`isReadableByWorker`) - VALUES - (1, 1106, 4, TRUE), - (2, 1107, 3, FALSE); + VALUES + (1, 1106, 4, TRUE), + (2, 1107, 3, FALSE); INSERT INTO `vn`.`device` (`sn`, `model`, `userFk`) - VALUES - ('aaa', 'android', '9'); + VALUES + ('aaa', 'android', '9'); INSERT INTO `vn`.`queuePriority`(`id`, `priority`, `code`) - VALUES - (1, 'Alta', 'high'), - (2, 'Normal', 'normal'), - (3, 'Baja', 'low'); + VALUES + (1, 'Alta', 'high'), + (2, 'Normal', 'normal'), + (3, 'Baja', 'low'); INSERT IGNORE INTO `vn`.`greugeConfig` (`id`, `freightPickUpPrice`) VALUES ('1', '11'); INSERT INTO `vn`.`thermograph`(`id`, `model`) - VALUES - ('TMM190901395', 'TEMPMATE'), - ('TL.BBA85422', 'TL30'), - ('TZ1905012010', 'DISPOSABLE'), - ('138350-0', 'DISPOSABLE'); + VALUES + ('TMM190901395', 'TEMPMATE'), + ('TL.BBA85422', 'TL30'), + ('TZ1905012010', 'DISPOSABLE'), + ('138350-0', 'DISPOSABLE'); INSERT INTO `vn`.`travelThermograph` (`thermographFk`, `created`, `warehouseFk`, `travelFk`, `temperatureFk`, `minTemperature`, `maxTemperature`, `result`, `dmsFk`) - VALUES - ('TMM190901395', util.VN_CURDATE(), 1, 1, 'WARM', NULL, NULL, 'Ok', NULL), - ('TL.BBA85422', DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 2, 2, 'COOL', NULL, NULL, 'Ok', NULL), - ('TL.BBA85422', util.VN_CURDATE(), 2, 1, 'COOL', NULL, NULL, 'can not read the temperature', NULL), - ('TZ1905012010', util.VN_CURDATE(), 1, 1, 'WARM', NULL, NULL, 'Temperature in range', 5), - ('138350-0', DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 1, 1, 'WARM', 2, 12, NULL, 5), - ('138350-0', util.VN_CURDATE(), 1, NULL, 'COOL', NULL, NULL, NULL, NULL); + VALUES + ('TMM190901395', util.VN_CURDATE(), 1, 1, 'WARM', NULL, NULL, 'Ok', NULL), + ('TL.BBA85422', DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 2, 2, 'COOL', NULL, NULL, 'Ok', NULL), + ('TL.BBA85422', util.VN_CURDATE(), 2, 1, 'COOL', NULL, NULL, 'can not read the temperature', NULL), + ('TZ1905012010', util.VN_CURDATE(), 1, 1, 'WARM', NULL, NULL, 'Temperature in range', 5), + ('138350-0', DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 1, 1, 'WARM', 2, 12, NULL, 5), + ('138350-0', util.VN_CURDATE(), 1, NULL, 'COOL', NULL, NULL, NULL, NULL); REPLACE INTO `vn`.`incoterms`(`code`, `name`) - VALUES - ('FAS', 'Free Alongside Ship'); + VALUES + ('FAS', 'Free Alongside Ship'); REPLACE INTO `vn`.`customsAgent`(`id`, `fiscalName`, `street`, `nif`, `phone`, `email`) - VALUES - (1, 'Agent one', '1007 Mountain Drive, Gotham', 'N1111111111', '111111111', 'agentone@gotham.com'), - (2, 'Agent two', '1007 Mountain Drive, Gotham', 'N2222222222', '222222222', 'agenttwo@gotham.com'); + VALUES + (1, 'Agent one', '1007 Mountain Drive, Gotham', 'N1111111111', '111111111', 'agentone@gotham.com'), + (2, 'Agent two', '1007 Mountain Drive, Gotham', 'N2222222222', '222222222', 'agenttwo@gotham.com'); INSERT INTO `vn`.`tablet`(`uuid`, `name`, `place`, `macwifi`) - VALUES - ('1', 'TEST', 'ON THE FIXTURES', '0'), - ('2', 'DEV', 'OTHER TABLET', '0'); + VALUES + ('1', 'TEST', 'ON THE FIXTURES', '0'), + ('2', 'DEV', 'OTHER TABLET', '0'); INSERT INTO `vn`.`tabletDepartment`(`tabletFk`, `departmentFk`) - VALUES - (1, 23), - (2, 1); + VALUES + (1, 23), + (2, 1); INSERT INTO `vn`.`campaign`(`code`, `dated`) - VALUES - ('valentinesDay', CONCAT(YEAR(util.VN_CURDATE()), '-02-14')), - ('valentinesDay', CONCAT(YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 YEAR)), '-02-14')), - ('valentinesDay', CONCAT(YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -2 YEAR)), '-02-14')), - ('valentinesDay', CONCAT(YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -3 YEAR)), '-02-14')), - ('mothersDay', CONCAT(YEAR(util.VN_CURDATE()), '-05-05')), - ('mothersDay', CONCAT(YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 YEAR)), '-05-05')), - ('mothersDay', CONCAT(YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -2 YEAR)), '-05-05')), - ('mothersDay', CONCAT(YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -3 YEAR)), '-05-05')), - ('allSaints', CONCAT(YEAR(util.VN_CURDATE()), '-11-01')), - ('allSaints', CONCAT(YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 YEAR)), '-11-01')), - ('allSaints', CONCAT(YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -2 YEAR)), '-11-01')), - ('allSaints', CONCAT(YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -3 YEAR)), '-11-01')); + VALUES + ('valentinesDay', CONCAT(YEAR(util.VN_CURDATE()), '-02-14')), + ('valentinesDay', CONCAT(YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 YEAR)), '-02-14')), + ('valentinesDay', CONCAT(YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -2 YEAR)), '-02-14')), + ('valentinesDay', CONCAT(YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -3 YEAR)), '-02-14')), + ('mothersDay', CONCAT(YEAR(util.VN_CURDATE()), '-05-05')), + ('mothersDay', CONCAT(YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 YEAR)), '-05-05')), + ('mothersDay', CONCAT(YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -2 YEAR)), '-05-05')), + ('mothersDay', CONCAT(YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -3 YEAR)), '-05-05')), + ('allSaints', CONCAT(YEAR(util.VN_CURDATE()), '-11-01')), + ('allSaints', CONCAT(YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 YEAR)), '-11-01')), + ('allSaints', CONCAT(YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -2 YEAR)), '-11-01')), + ('allSaints', CONCAT(YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -3 YEAR)), '-11-01')); INSERT INTO `hedera`.`imageCollectionSize`(`id`, `collectionFk`,`width`, `height`) - VALUES - (1, 4, 160, 160); + VALUES + (1, 4, 160, 160); INSERT INTO `vn`.`rateConfig`(`id`, `rate0`, `rate1`, `rate2`, `rate3`) - VALUES - (1, 36, 31, 25, 21); + VALUES + (1, 36, 31, 25, 21); INSERT INTO `vn`.`rate`(`dated`, `warehouseFk`, `rate0`, `rate1`, `rate2`, `rate3`) - VALUES - (DATE_ADD(util.VN_CURDATE(), INTERVAL -1 YEAR), 1, 10, 15, 20, 25), - (util.VN_CURDATE(), 1, 12, 17, 22, 27); + VALUES + (DATE_ADD(util.VN_CURDATE(), INTERVAL -1 YEAR), 1, 10, 15, 20, 25), + (util.VN_CURDATE(), 1, 12, 17, 22, 27); INSERT INTO `vn`.`dua` (id, code, issued, operated, booked, bookEntried, gestdocFk, customsValue, companyFk) - VALUES - (1, '19ES0028013A481523', util.VN_CURDATE(), util.VN_CURDATE(), util.VN_CURDATE(), util.VN_CURDATE(), 1, 11276.95, 442), - (2, '21ES00280136115760', util.VN_CURDATE(), util.VN_CURDATE(), util.VN_CURDATE(), util.VN_CURDATE(), 2, 1376.20, 442), - (3, '19ES00280131956004', util.VN_CURDATE(), util.VN_CURDATE(), util.VN_CURDATE(), util.VN_CURDATE(), 3, 14268.50, 442), - (4, '19ES00280131955995', util.VN_CURDATE(), util.VN_CURDATE(), util.VN_CURDATE(), util.VN_CURDATE(), 1, 8242.50, 442), - (5, '19ES00280132022070', util.VN_CURDATE(), util.VN_CURDATE(), util.VN_CURDATE(), util.VN_CURDATE(), 2, 10012.49, 442), - (6, '19ES00280132032308', util.VN_CURDATE(), util.VN_CURDATE(), util.VN_CURDATE(), util.VN_CURDATE(), 2, 19914.25, 442), - (7, '19ES00280132025489', DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), util.VN_CURDATE(), util.VN_CURDATE(), util.VN_CURDATE(), 2, 1934.06, 442), - (8, '19ES00280132025490', DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), util.VN_CURDATE(), util.VN_CURDATE(), util.VN_CURDATE(), 2, 3618.52, 442), - (9, '19ES00280132025491', DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), util.VN_CURDATE(), util.VN_CURDATE(), util.VN_CURDATE(), 2, 7126.23, 442), - (10, '19ES00280132025492', DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), util.VN_CURDATE(), util.VN_CURDATE(), util.VN_CURDATE(), 2, 4631.45, 442); + VALUES + (1, '19ES0028013A481523', util.VN_CURDATE(), util.VN_CURDATE(), util.VN_CURDATE(), util.VN_CURDATE(), 1, 11276.95, 442), + (2, '21ES00280136115760', util.VN_CURDATE(), util.VN_CURDATE(), util.VN_CURDATE(), util.VN_CURDATE(), 2, 1376.20, 442), + (3, '19ES00280131956004', util.VN_CURDATE(), util.VN_CURDATE(), util.VN_CURDATE(), util.VN_CURDATE(), 3, 14268.50, 442), + (4, '19ES00280131955995', util.VN_CURDATE(), util.VN_CURDATE(), util.VN_CURDATE(), util.VN_CURDATE(), 1, 8242.50, 442), + (5, '19ES00280132022070', util.VN_CURDATE(), util.VN_CURDATE(), util.VN_CURDATE(), util.VN_CURDATE(), 2, 10012.49, 442), + (6, '19ES00280132032308', util.VN_CURDATE(), util.VN_CURDATE(), util.VN_CURDATE(), util.VN_CURDATE(), 2, 19914.25, 442), + (7, '19ES00280132025489', DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), util.VN_CURDATE(), util.VN_CURDATE(), util.VN_CURDATE(), 2, 1934.06, 442), + (8, '19ES00280132025490', DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), util.VN_CURDATE(), util.VN_CURDATE(), util.VN_CURDATE(), 2, 3618.52, 442), + (9, '19ES00280132025491', DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), util.VN_CURDATE(), util.VN_CURDATE(), util.VN_CURDATE(), 2, 7126.23, 442), + (10, '19ES00280132025492', DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), util.VN_CURDATE(), util.VN_CURDATE(), util.VN_CURDATE(), 2, 4631.45, 442); INSERT INTO `vn`.`duaEntry` (`duaFk`, `entryFk`, `value`, `customsValue`, `euroValue`) - VALUES - (1, 1, 1.00, 1.00, 1.00), - (2, 2, 1.00, 1.00, 1.00), - (3, 3, 1.00, 1.00, 1.00), - (4, 4, 1.00, 1.00, 1.00), - (5, 5, 1.00, 1.00, 1.00), - (6, 6, 1.00, 1.00, 1.00), - (7, 7, 1.00, 1.00, 1.00), - (8, 8, 1.00, 1.00, 1.00); + VALUES + (1, 1, 1.00, 1.00, 1.00), + (2, 2, 1.00, 1.00, 1.00), + (3, 3, 1.00, 1.00, 1.00), + (4, 4, 1.00, 1.00, 1.00), + (5, 5, 1.00, 1.00, 1.00), + (6, 6, 1.00, 1.00, 1.00), + (7, 7, 1.00, 1.00, 1.00), + (8, 8, 1.00, 1.00, 1.00); REPLACE INTO `vn`.`invoiceIn`(`id`, `serialNumber`,`serial`, `supplierFk`, `issued`, `created`, `supplierRef`, `isBooked`, `companyFk`, `docFk`, `bookEntried`) - VALUES - (1, 1001, 'R', 1, util.VN_CURDATE(), util.VN_CURDATE(), 1234, 0, 442, 1,util.VN_CURDATE()), - (2, 1002, 'R', 1, util.VN_CURDATE(), util.VN_CURDATE(), 1235, 0, 442, 1,util.VN_CURDATE()), - (3, 1003, 'R', 1, util.VN_CURDATE(), util.VN_CURDATE(), 1236, 0, 442, 1,util.VN_CURDATE()), - (4, 1004, 'R', 1, util.VN_CURDATE(), util.VN_CURDATE(), 1237, 0, 442, 1,util.VN_CURDATE()), - (5, 1005, 'R', 1, util.VN_CURDATE(), util.VN_CURDATE(), 1238, 0, 442, 1,util.VN_CURDATE()), - (6, 1006, 'R', 2, util.VN_CURDATE(), util.VN_CURDATE(), 1239, 0, 442, 1,util.VN_CURDATE()), - (7, 1007, 'R', 2, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 1240, 0, 442, 1,util.VN_CURDATE()), - (8, 1008, 'R', 2, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 1241, 0, 442, 1,util.VN_CURDATE()), - (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()); + VALUES + (1, 1001, 'R', 1, util.VN_CURDATE(), util.VN_CURDATE(), 1234, 0, 442, 1,util.VN_CURDATE()), + (2, 1002, 'R', 1, util.VN_CURDATE(), util.VN_CURDATE(), 1235, 0, 442, 1,util.VN_CURDATE()), + (3, 1003, 'R', 1, util.VN_CURDATE(), util.VN_CURDATE(), 1236, 0, 442, 1,util.VN_CURDATE()), + (4, 1004, 'R', 1, util.VN_CURDATE(), util.VN_CURDATE(), 1237, 0, 442, 1,util.VN_CURDATE()), + (5, 1005, 'R', 1, util.VN_CURDATE(), util.VN_CURDATE(), 1238, 0, 442, 1,util.VN_CURDATE()), + (6, 1006, 'R', 2, util.VN_CURDATE(), util.VN_CURDATE(), 1239, 0, 442, 1,util.VN_CURDATE()), + (7, 1007, 'R', 2, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 1240, 0, 442, 1,util.VN_CURDATE()), + (8, 1008, 'R', 2, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 1241, 0, 442, 1,util.VN_CURDATE()), + (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`) - VALUES - (1, -2, '2% retention', 2, 45); + VALUES + (1, -2, '2% retention', 2, 45); INSERT INTO `vn`.`invoiceInDueDay`(`invoiceInFk`, `dueDated`, `bankFk`, `amount`) - VALUES - (1, util.VN_CURDATE(), 1, 336.99), - (1, util.VN_CURDATE(), 1, 15.25), - (2, util.VN_CURDATE(), 1, 168), - (2, util.VN_CURDATE(), 1, 55.17), - (3, util.VN_CURDATE(), 1, 87.95), - (3, util.VN_CURDATE(), 1, 7.65), - (4, util.VN_CURDATE(), 1, 373.27), - (4, util.VN_CURDATE(), 1, 73.36), - (5, util.VN_CURDATE(), 1, 64.23), - (6, util.VN_CURDATE(), 1, 32.95), - (7, util.VN_CURDATE(), 1, 58.64); + VALUES + (1, util.VN_CURDATE(), 1, 336.99), + (1, util.VN_CURDATE(), 1, 15.25), + (2, util.VN_CURDATE(), 1, 168), + (2, util.VN_CURDATE(), 1, 55.17), + (3, util.VN_CURDATE(), 1, 87.95), + (3, util.VN_CURDATE(), 1, 7.65), + (4, util.VN_CURDATE(), 1, 373.27), + (4, util.VN_CURDATE(), 1, 73.36), + (5, util.VN_CURDATE(), 1, 64.23), + (6, util.VN_CURDATE(), 1, 32.95), + (7, util.VN_CURDATE(), 1, 58.64); INSERT INTO `vn`.`duaInvoiceIn`(`id`, `duaFk`, `invoiceInFk`) - VALUES - (1, 1, 1), - (2, 2, 2), - (3, 3, 3), - (4, 4, 4), - (5, 5, 5), - (6, 6, 6), - (7, 7, 7), - (8, 8, 8), - (9, 9, 9), - (10, 10, 10); + VALUES + (1, 1, 1), + (2, 2, 2), + (3, 3, 3), + (4, 4, 4), + (5, 5, 5), + (6, 6, 6), + (7, 7, 7), + (8, 8, 8), + (9, 9, 9), + (10, 10, 10); INSERT INTO `vn`.`invoiceInTax` (`invoiceInFk`, `taxableBase`, `expenseFk`, `foreignValue`, `taxTypeSageFk`, `transactionTypeSageFk`) - VALUES - (1, 99.99, '2000000000', NULL, NULL, NULL), - (2, 999.99, '2000000000', NULL, NULL, NULL), - (3, 1000.50, '2000000000', NULL, NULL, NULL), - (4, 0.50, '2000000000', NULL, NULL, NULL), - (5, 150.50, '2000000000', NULL, NULL, NULL), - (1, 252.25, '4751000000', NULL, 7, 61), - (2, 223.17, '6210000567', NULL, 8, 20), - (3, 95.60, '7001000000', NULL, 8, 35), - (4, 446.63, '7001000000', NULL, 6, 61), - (5, 64.23, '6210000567', NULL, 8, 20), - (6, 29.95, '7001000000', NULL, 7, 20), - (7, 58.64, '6210000567', NULL, 8, 20); + VALUES + (1, 99.99, '2000000000', NULL, NULL, NULL), + (2, 999.99, '2000000000', NULL, NULL, NULL), + (3, 1000.50, '2000000000', NULL, NULL, NULL), + (4, 0.50, '2000000000', NULL, NULL, NULL), + (5, 150.50, '2000000000', NULL, NULL, NULL), + (1, 252.25, '4751000000', NULL, 7, 61), + (2, 223.17, '6210000567', NULL, 8, 20), + (3, 95.60, '7001000000', NULL, 8, 35), + (4, 446.63, '7001000000', NULL, 6, 61), + (5, 64.23, '6210000567', NULL, 8, 20), + (6, 29.95, '7001000000', NULL, 7, 20), + (7, 58.64, '6210000567', NULL, 8, 20); INSERT INTO `vn`.`invoiceInIntrastat` (`invoiceInFk`, `net`, `intrastatFk`, `amount`, `stems`, `countryFk`) - VALUES - (1, 30.50, 5080000, 10.00, 162, 5), - (1, 10, 6021010, 20.00, 205, 5), - (2, 13.20, 5080000, 15.00, 580, 5), - (2, 16.10, 6021010, 25.00, 80, 5); + VALUES + (1, 30.50, 5080000, 10.00, 162, 5), + (1, 10, 6021010, 20.00, 205, 5), + (2, 13.20, 5080000, 15.00, 580, 5), + (2, 16.10, 6021010, 25.00, 80, 5); UPDATE `vn`.`invoiceIn` - SET isBooked = TRUE - WHERE id IN (5, 7, 8, 9, 10); + SET isBooked = TRUE + WHERE id IN (5, 7, 8, 9, 10); DELIMITER $$ CREATE PROCEDURE `tmp`.`ticket_recalc`() @@ -2709,430 +2709,430 @@ CALL tmp.ticket_recalc; DROP PROCEDURE tmp.ticket_recalc; UPDATE `vn`.`ticket` - SET refFk = 'T1111111' - WHERE id IN (1,2); + SET refFk = 'T1111111' + WHERE id IN (1,2); UPDATE `vn`.`ticket` - SET refFk = 'T2222222' - WHERE id = 3; + SET refFk = 'T2222222' + WHERE id = 3; UPDATE `vn`.`ticket` - SET refFk = 'T3333333' - WHERE id = 4; + SET refFk = 'T3333333' + WHERE id = 4; UPDATE `vn`.`ticket` - SET refFk = 'T4444444' - WHERE id = 5; + SET refFk = 'T4444444' + WHERE id = 5; UPDATE `vn`.`ticket` - SET refFk = 'A1111111' - WHERE id = 6; + SET refFk = 'A1111111' + WHERE id = 6; INSERT INTO `vn`.`zoneAgencyMode`(`id`, `agencyModeFk`, `zoneFk`) - VALUES - (1, 1, 1), - (2, 1, 2), - (3, 6, 5), - (4, 7, 1); + VALUES + (1, 1, 1), + (2, 1, 2), + (3, 6, 5), + (4, 7, 1); INSERT INTO `vn`.`roadmapAddress` (`addressFk`) - VALUES - (1), - (2), - (3), - (4); + VALUES + (1), + (2), + (3), + (4); INSERT INTO `vn`.`roadmap` (`id`, `name`, `tractorPlate`, `trailerPlate`, `phone`, `supplierFk`, `etd`, `observations`, `userFk`, `price`, `driverName`) - VALUES - (1, 'val-algemesi', '1234-BCD', '9876-BCD', '111111111', 1, util.VN_NOW(), 'this is test observation', 1, 15, 'Batman'), - (2, 'alg-valencia', '2345-CDF', '8765-BCD', '111111111', 1, util.VN_NOW(), 'test observation', 1, 20, 'Robin'), - (3, 'alz-algemesi', '3456-DFG', '7654-BCD', '222222222', 2, DATE_ADD(util.VN_NOW(), INTERVAL 2 DAY), 'observations...', 2, 25, 'Driverman'); + VALUES + (1, 'val-algemesi', '1234-BCD', '9876-BCD', '111111111', 1, util.VN_NOW(), 'this is test observation', 1, 15, 'Batman'), + (2, 'alg-valencia', '2345-CDF', '8765-BCD', '111111111', 1, util.VN_NOW(), 'test observation', 1, 20, 'Robin'), + (3, 'alz-algemesi', '3456-DFG', '7654-BCD', '222222222', 2, DATE_ADD(util.VN_NOW(), INTERVAL 2 DAY), 'observations...', 2, 25, 'Driverman'); INSERT INTO `vn`.`roadmapStop` (`id`, `roadmapFk`, `addressFk`, `eta`, `description`, `userFk`) - VALUES - (1, 1, 1, DATE_ADD(util.VN_NOW(), INTERVAL 1 DAY), 'Best truck in fleet', 1), - (2, 1, 2, DATE_ADD(util.VN_NOW(), INTERVAL '1 2' DAY_HOUR), 'Second truck in fleet', 1), - (3, 1, 3, DATE_ADD(util.VN_NOW(), INTERVAL '1 4' DAY_HOUR), 'Third truck in fleet', 1), - (4, 2, 1, DATE_ADD(util.VN_NOW(), INTERVAL 3 DAY), 'Truck red', 1); + VALUES + (1, 1, 1, DATE_ADD(util.VN_NOW(), INTERVAL 1 DAY), 'Best truck in fleet', 1), + (2, 1, 2, DATE_ADD(util.VN_NOW(), INTERVAL '1 2' DAY_HOUR), 'Second truck in fleet', 1), + (3, 1, 3, DATE_ADD(util.VN_NOW(), INTERVAL '1 4' DAY_HOUR), 'Third truck in fleet', 1), + (4, 2, 1, DATE_ADD(util.VN_NOW(), INTERVAL 3 DAY), 'Truck red', 1); INSERT INTO `vn`.`expeditionPallet` (`id`, `truckFk`, `built`, `position`, `isPrint`) - VALUES - (1, 1, util.VN_CURDATE(), 1, 1); + VALUES + (1, 1, util.VN_CURDATE(), 1, 1); INSERT INTO `vn`.`expeditionScan` (`id`, `expeditionFk`, `scanned`, `palletFk`) - VALUES - (1, 1, util.VN_CURDATE(), 1), - (2, 2, util.VN_CURDATE(), 1), - (3, 3, util.VN_CURDATE(), 1), - (4, 4, util.VN_CURDATE(), 1), - (5, 5, util.VN_CURDATE(), 1), - (6, 6, util.VN_CURDATE(), 1), - (7, 7, util.VN_CURDATE(), 1), - (8, 8, util.VN_CURDATE(), 1), - (9, 9, util.VN_CURDATE(), 1), - (10, 10, util.VN_CURDATE(), 1); + VALUES + (1, 1, util.VN_CURDATE(), 1), + (2, 2, util.VN_CURDATE(), 1), + (3, 3, util.VN_CURDATE(), 1), + (4, 4, util.VN_CURDATE(), 1), + (5, 5, util.VN_CURDATE(), 1), + (6, 6, util.VN_CURDATE(), 1), + (7, 7, util.VN_CURDATE(), 1), + (8, 8, util.VN_CURDATE(), 1), + (9, 9, util.VN_CURDATE(), 1), + (10, 10, util.VN_CURDATE(), 1); CALL `cache`.`last_buy_refresh`(FALSE); UPDATE `vn`.`item` SET `genericFk` = 9 - WHERE `id` = 2; + WHERE `id` = 2; INSERT INTO `bs`.`defaulter` (`clientFk`, `amount`, `created`, `defaulterSinced`) - VALUES - (1101, 500, util.VN_CURDATE(), util.VN_CURDATE()), - (1102, 500, util.VN_CURDATE(), util.VN_CURDATE()), - (1103, 500, util.VN_CURDATE(), util.VN_CURDATE()), - (1107, 500, util.VN_CURDATE(), util.VN_CURDATE()), - (1109, 500, util.VN_CURDATE(), util.VN_CURDATE()); + VALUES + (1101, 500, util.VN_CURDATE(), util.VN_CURDATE()), + (1102, 500, util.VN_CURDATE(), util.VN_CURDATE()), + (1103, 500, util.VN_CURDATE(), util.VN_CURDATE()), + (1107, 500, util.VN_CURDATE(), util.VN_CURDATE()), + (1109, 500, util.VN_CURDATE(), util.VN_CURDATE()); UPDATE `vn`.`route` - SET `invoiceInFk`=1 - WHERE `id`=1; + SET `invoiceInFk`=1 + WHERE `id`=1; UPDATE `vn`.`route` - SET `invoiceInFk`=2 - WHERE `id`=2; + SET `invoiceInFk`=2 + WHERE `id`=2; INSERT INTO `bs`.`sale` (`saleFk`, `amount`, `dated`, `typeFk`, `clientFk`) - VALUES - (1, 501.95, util.VN_CURDATE(), 2, 1101), - (2, 70.7, util.VN_CURDATE(), 2, 1101), - (3, 200.78, util.VN_CURDATE(), 2, 1101), - (4, 33.8, util.VN_CURDATE(), 1, 1101), - (30, 34.4, util.VN_CURDATE(), 1, 1108); + VALUES + (1, 501.95, util.VN_CURDATE(), 2, 1101), + (2, 70.7, util.VN_CURDATE(), 2, 1101), + (3, 200.78, util.VN_CURDATE(), 2, 1101), + (4, 33.8, util.VN_CURDATE(), 1, 1101), + (30, 34.4, util.VN_CURDATE(), 1, 1108); INSERT INTO `vn`.`docuwareConfig` (`id`, `url`) - VALUES - (1, 'http://docuware.url/'); + VALUES + (1, 'http://docuware.url/'); INSERT INTO `vn`.`calendarHolidaysName` (`id`, `name`) - VALUES - (1, 'dayOfIT'); + VALUES + (1, 'dayOfIT'); INSERT INTO `vn`.`calendarHolidaysType` (`id`, `name`, `hexColour`) - VALUES - (1, 'National', '#4169E1'); + VALUES + (1, 'National', '#4169E1'); INSERT INTO `vn`.`calendarHolidays` (`id`, `calendarHolidaysTypeFk`, `dated`, `calendarHolidaysNameFk`, `workCenterFk`) - VALUES - (1, 1, CONCAT(YEAR(util.VN_CURDATE()), '-12-09'), 1, 1); + VALUES + (1, 1, CONCAT(YEAR(util.VN_CURDATE()), '-12-09'), 1, 1); INSERT INTO `vn`.`supplierAgencyTerm` (`agencyFk`, `supplierFk`, `minimumPackages`, `kmPrice`, `packagePrice`, `routePrice`, `minimumKm`, `minimumM3`, `m3Price`) - VALUES - (1, 1, 0, 0.00, 0.00, NULL, 0, 0.00, 23), - (2, 1, 60, 0.00, 0.00, NULL, 0, 5.00, 33), - (3, 2, 0, 15.00, 0.00, NULL, 0, 0.00, 0), - (4, 2, 0, 20.00, 0.00, NULL, 0, 0.00, 0), - (5, 442, 0, 0.00, 3.05, NULL, 0, 0.00, 0); + VALUES + (1, 1, 0, 0.00, 0.00, NULL, 0, 0.00, 23), + (2, 1, 60, 0.00, 0.00, NULL, 0, 5.00, 33), + (3, 2, 0, 15.00, 0.00, NULL, 0, 0.00, 0), + (4, 2, 0, 20.00, 0.00, NULL, 0, 0.00, 0), + (5, 442, 0, 0.00, 3.05, NULL, 0, 0.00, 0); INSERT INTO `vn`.`chat` (`senderFk`, `recipient`, `dated`, `checkUserStatus`, `message`, `status`, `attempts`) - VALUES - (1101, '@PetterParker', util.VN_CURDATE(), 1, 'First test message', 0, 'sent'), - (1101, '@PetterParker', util.VN_CURDATE(), 0, 'Second test message', 0, 'pending'); + VALUES + (1101, '@PetterParker', util.VN_CURDATE(), 1, 'First test message', 0, 'sent'), + (1101, '@PetterParker', util.VN_CURDATE(), 0, 'Second test message', 0, 'pending'); INSERT INTO `vn`.`mobileAppVersionControl` (`appName`, `version`, `isVersionCritical`,`versionBeta`) - VALUES - ('delivery', '9.2', 0,'9.7'), - ('warehouse', '8.1', 0,'8.3'); + VALUES + ('delivery', '9.2', 0,'9.7'), + ('warehouse', '8.1', 0,'8.3'); INSERT INTO `vn`.`machine` (`plate`, `maker`, `model`, `warehouseFk`, `departmentFk`, `type`, `use`, `productionYear`, `workerFk`, `companyFk`) - VALUES - ('RE-001', 'STILL', 'LTX-20', 60, 23, 'ELECTRIC TOW', 'Drag cars', 2020, 103, 442), - ('RE-002', 'STILL', 'LTX-20', 60, 23, 'ELECTRIC TOW', 'Drag cars', 2020, 103, 442); + VALUES + ('RE-001', 'STILL', 'LTX-20', 60, 23, 'ELECTRIC TOW', 'Drag cars', 2020, 103, 442), + ('RE-002', 'STILL', 'LTX-20', 60, 23, 'ELECTRIC TOW', 'Drag cars', 2020, 103, 442); INSERT INTO `vn`.`zoneExclusion` (`id`, `zoneFk`, `dated`, `created`, `userFk`) VALUES - (1, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL (IF(DAYOFWEEK(util.VN_CURDATE())<=7, 7, 14) - DAYOFWEEK(util.VN_CURDATE())) DAY), util.VN_CURDATE(), 100), - (2, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL (IF(DAYOFWEEK(util.VN_CURDATE())<=8, 8, 15) - DAYOFWEEK(util.VN_CURDATE())) DAY), util.VN_CURDATE(), 100); + (1, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL (IF(DAYOFWEEK(util.VN_CURDATE())<=7, 7, 14) - DAYOFWEEK(util.VN_CURDATE())) DAY), util.VN_CURDATE(), 100), + (2, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL (IF(DAYOFWEEK(util.VN_CURDATE())<=8, 8, 15) - DAYOFWEEK(util.VN_CURDATE())) DAY), util.VN_CURDATE(), 100); INSERT INTO `vn`.`zoneExclusionGeo` (`zoneExclusionFk`, `geoFk`) - VALUES - (2, 1); + VALUES + (2, 1); INSERT INTO `vn`.`mdbBranch` (`name`) - VALUES - ('test'), - ('master'); + VALUES + ('test'), + ('master'); INSERT INTO `vn`.`mdbVersion` (`app`, `branchFk`, `version`) - VALUES - ('tpv', 'test', '1'), - ('lab', 'master', '1'); + VALUES + ('tpv', 'test', '1'), + ('lab', 'master', '1'); INSERT INTO `vn`.`accountingConfig` (`id`, `minDate`, `maxDate`) - VALUES - (1, CONCAT(YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 YEAR)), '-01-01'), CONCAT(YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL +1 YEAR)), '-01-01')); + VALUES + (1, CONCAT(YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 YEAR)), '-01-01'), CONCAT(YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL +1 YEAR)), '-01-01')); INSERT INTO `vn`.`saleGroup` (`userFk`, `parkingFk`, `sectorFk`) - VALUES - (1, 1, 1); + VALUES + (1, 1, 1); INSERT INTO `vn`.`saleGroupDetail` (`saleFk`, `saleGroupFk`) - VALUES - (31, 1); + VALUES + (31, 1); INSERT INTO `vn`.`sectorCollection` (`userFk`, `sectorFk`) - VALUES - (1, 1); + VALUES + (1, 1); INSERT INTO `vn`.`sectorCollectionSaleGroup` (`sectorCollectionFk`, `saleGroupFk`) - VALUES - (1, 1); + VALUES + (1, 1); INSERT INTO `vn`.`workerTimeControlConfig` (`id`, `dayBreak`, `dayBreakDriver`, `shortWeekBreak`, `longWeekBreak`, `weekScope`, `mailPass`, `mailHost`, `mailSuccessFolder`, `mailErrorFolder`, `mailUser`, `minHoursToBreak`, `breakHours`, `hoursCompleteWeek`, `startNightlyHours`, `endNightlyHours`, `maxTimePerDay`, `breakTime`, `timeToBreakTime`, `dayMaxTime`, `shortWeekDays`, `longWeekDays`, `teleworkingStart`, `teleworkingStartBreakTime`, `maxTimeToBreak`, `maxWorkShortCycle`, `maxWorkLongCycle`) - VALUES - (1, 43200, 32400, 129600, 259200, 1080000, '', 'imap.verdnatura.es', 'Leidos.exito', 'Leidos.error', 'timeControl', 5.00, 0.33, 40, '22:00:00', '06:00:00', 72000, 1200, 18000, 72000, 6, 13, 28800, 32400, 3600, 561600, 950400); + VALUES + (1, 43200, 32400, 129600, 259200, 1080000, '', 'imap.verdnatura.es', 'Leidos.exito', 'Leidos.error', 'timeControl', 5.00, 0.33, 40, '22:00:00', '06:00:00', 72000, 1200, 18000, 72000, 6, 13, 28800, 32400, 3600, 561600, 950400); INSERT INTO `vn`.`host` (`id`, `code`, `description`, `warehouseFk`, `bankFk`) - VALUES - (1, 'pc1', 'pc host', 1, 1); + VALUES + (1, 'pc1', 'pc host', 1, 1); INSERT INTO `vn`.`packingSite` (`id`, `code`, `hostFk`, `monitorId`) - VALUES - (1, 'h1', 1, ''); + VALUES + (1, 'h1', 1, ''); INSERT INTO `vn`.`packingSiteConfig` (`id`, `shinobiUrl`, `shinobiToken`, `shinobiGroupKey`, `avgBoxingTime`) - VALUES - (1, '', 'SHINNOBI_TOKEN', 'GROUP_TOKEN', 6000); + VALUES + (1, '', 'SHINNOBI_TOKEN', 'GROUP_TOKEN', 6000); INSERT INTO `util`.`notificationConfig` SET `id` = 1, - `cleanDays` = 90; + `cleanDays` = 90; TRUNCATE `util`.`notification`; INSERT INTO `util`.`notification` (`id`, `name`, `description`) - VALUES - (1, 'print-email', 'notification fixture one'), - (2, 'invoice-electronic', 'A electronic invoice has been generated'), - (3, 'not-main-printer-configured', 'A printer distinct than main has been configured'), - (4, 'supplier-pay-method-update', 'A supplier pay method has been updated'), - (5, 'modified-entry', 'An entry has been modified'), - (6, 'book-entry-deleted', 'accounting entries deleted'), - (7, 'zone-included','An email to notify zoneCollisions'), - (8, 'backup-printer-selected','A backup printer has been selected'), - (9, 'mrw-deadline','The MRW deadline has passed'), - (10,'invoice-ticket-closure','Tickets not invoiced during the nightly closure ticket process'); + VALUES + (1, 'print-email', 'notification fixture one'), + (2, 'invoice-electronic', 'A electronic invoice has been generated'), + (3, 'not-main-printer-configured', 'A printer distinct than main has been configured'), + (4, 'supplier-pay-method-update', 'A supplier pay method has been updated'), + (5, 'modified-entry', 'An entry has been modified'), + (6, 'book-entry-deleted', 'accounting entries deleted'), + (7, 'zone-included','An email to notify zoneCollisions'), + (8, 'backup-printer-selected','A backup printer has been selected'), + (9, 'mrw-deadline','The MRW deadline has passed'), + (10,'invoice-ticket-closure','Tickets not invoiced during the nightly closure ticket process'); TRUNCATE `util`.`notificationAcl`; INSERT INTO `util`.`notificationAcl` (`notificationFk`, `roleFk`) - VALUES - (1, 9), - (1, 1), - (2, 1), - (3, 9), - (4, 1), - (5, 9), - (6, 9), - (7, 9), - (8, 66), - (9, 56); + VALUES + (1, 9), + (1, 1), + (2, 1), + (3, 9), + (4, 1), + (5, 9), + (6, 9), + (7, 9), + (8, 66), + (9, 56); TRUNCATE `util`.`notificationQueue`; INSERT INTO `util`.`notificationQueue` (`id`, `notificationFk`, `params`, `authorFk`, `status`, `created`) - VALUES - (1, 'print-email', '{"id": "1"}', 9, 'pending', util.VN_CURDATE()), - (2, 'print-email', '{"id": "2"}', null, 'pending', util.VN_CURDATE()), - (3, 'print-email', null, null, 'pending', util.VN_CURDATE()); + VALUES + (1, 'print-email', '{"id": "1"}', 9, 'pending', util.VN_CURDATE()), + (2, 'print-email', '{"id": "2"}', null, 'pending', util.VN_CURDATE()), + (3, 'print-email', null, null, 'pending', util.VN_CURDATE()); TRUNCATE `util`.`notificationSubscription`; INSERT INTO `util`.`notificationSubscription` (`notificationFk`, `userFk`) - VALUES - (1, 1109), - (1, 1110), - (2, 1110), - (4, 1110), - (2, 1109), - (1, 9), - (1, 3), - (6, 9), - (7, 9), - (8, 66); + VALUES + (1, 1109), + (1, 1110), + (2, 1110), + (4, 1110), + (2, 1109), + (1, 9), + (1, 3), + (6, 9), + (7, 9), + (8, 66); INSERT INTO `vn`.`routeConfig` (`id`, `defaultWorkCenterFk`) - VALUES - (1, 9); + VALUES + (1, 9); INSERT INTO `vn`.`productionConfig` (`isPreviousPreparationRequired`, `ticketPrintedMax`, `ticketTrolleyMax`, `rookieDays`, `notBuyingMonths`, `id`, `isZoneClosedByExpeditionActivated`, `maxNotReadyCollections`, `minTicketsToCloseZone`, `movingTicketDelRoute`, `defaultZone`, `defautlAgencyMode`, `hasUniqueCollectionTime`, `maxCollectionWithoutUser`, `pendingCollectionsOrder`, `pendingCollectionsAge`, `backupPrinterNotificationDelay`, `clientSelfConsumptionFk`, `addressSelfConsumptionFk`) - VALUES - (0, 8, 80, 0, 0, 1, 0, 15, 25, -1, 697, 1328, 0, 1, 8, 6, 3600, 1112, 12); + VALUES + (0, 8, 80, 0, 0, 1, 0, 15, 25, -1, 697, 1328, 0, 1, 8, 6, 3600, 1112, 12); INSERT INTO `vn`.`collection` (`id`, `created`, `workerFk`, `stateFk`, `itemPackingTypeFk`, `saleTotalCount`, `salePickedCount`, `trainFk`, `sectorFk`, `wagons`) - VALUES - (3, util.VN_NOW(), 1107, 5, NULL, 0, 0, 1, NULL, NULL); + VALUES + (3, util.VN_NOW(), 1107, 5, NULL, 0, 0, 1, NULL, NULL); INSERT INTO `vn`.`itemConfig` (`id`, `isItemTagTriggerDisabled`, `monthToDeactivate`, `wasteRecipients`, `validPriorities`, `defaultPriority`, `defaultTag`, `warehouseFk`) - VALUES - (1, 0, 24, '', '[1,2,3]', 2, 56, 60); + VALUES + (1, 0, 24, '', '[1,2,3]', 2, 56, 60); INSERT INTO `vn`.`ticketCollection` (`ticketFk`, `collectionFk`, `created`, `level`, `wagon`, `smartTagFk`, `usedShelves`, `itemCount`, `liters`) - VALUES - (9, 3, util.VN_NOW(), NULL, 0, NULL, NULL, NULL, NULL); + VALUES + (9, 3, util.VN_NOW(), NULL, 0, NULL, NULL, NULL, NULL); INSERT INTO `vn`.`saleCloned` (`saleClonedFk`, `saleOriginalFk`) - VALUES - (29, 25); + VALUES + (29, 25); UPDATE `account`.`user` - SET `hasGrant` = 1 - WHERE `id` = 66; + SET `hasGrant` = 1 + WHERE `id` = 66; INSERT INTO `vn`.`ticketLog` (`originFk`, userFk, `action`, changedModel, oldInstance, newInstance, changedModelId, `description`) - VALUES - (7, 18, 'update', 'Sale', '{"quantity":1}', '{"quantity":10}', 22, NULL), - (7, 18, 'update', 'Ticket', '{"quantity":1,"concept":"Chest ammo box"}', '{"quantity":10,"concept":"Chest ammo box"}', 22, NULL), - (7, 18, 'update', 'Sale', '{"price":3}', '{"price":5}', 22, NULL), - (7, 18, 'update', NULL, NULL, NULL, NULL, "Cambio cantidad Melee weapon heavy shield 100cm de '5' a '10'"), - (16, 9, 'update', 'Sale', '{"quantity":10,"concept":"Shield", "price": 10.5, "itemFk": 1}', '{"quantity":8,"concept":"Shield", "price": 10.5, "itemFk": 1}' , 12, 'Shield'); + VALUES + (7, 18, 'update', 'Sale', '{"quantity":1}', '{"quantity":10}', 22, NULL), + (7, 18, 'update', 'Ticket', '{"quantity":1,"concept":"Chest ammo box"}', '{"quantity":10,"concept":"Chest ammo box"}', 22, NULL), + (7, 18, 'update', 'Sale', '{"price":3}', '{"price":5}', 22, NULL), + (7, 18, 'update', NULL, NULL, NULL, NULL, "Cambio cantidad Melee weapon heavy shield 100cm de '5' a '10'"), + (16, 9, 'update', 'Sale', '{"quantity":10,"concept":"Shield", "price": 10.5, "itemFk": 1}', '{"quantity":8,"concept":"Shield", "price": 10.5, "itemFk": 1}' , 12, 'Shield'); INSERT INTO `vn`.`ticketLog` (originFk, userFk, `action`, creationDate, changedModel, changedModelId, changedModelValue, oldInstance, newInstance, description) - VALUES - (1, NULL, 'delete', '2001-06-09 11:00:04', 'Ticket', 45, 'Spider Man' , NULL, NULL, NULL), - (1, 18, 'select', '2001-06-09 11:00:03', 'Ticket', 45, 'Spider Man' , NULL, NULL, NULL), - (1, NULL, 'update', '2001-05-09 10:00:02', 'Sale', 5, 'Armor' , '{"isPicked": false}','{"isPicked": true}', NULL), - (1, 18, 'update', '2001-01-01 10:05:01', 'Sale', 5, 'Armor' , NULL, NULL, 'Armor quantity changed from ''15'' to ''10'''), - (1, NULL, 'delete', '2001-01-01 10:00:10', 'Sale', 4, 'Shield' , '{"quantity":10,"concept":"Shield"}', NULL, NULL), - (1, 18, 'insert', '2000-12-31 15:00:05', 'Sale', 1, 'Armor' , NULL,'{"quantity":15,"concept":"Armor", "price": 345.99, "itemFk": 2}', NULL), - (1, 18, 'update', '2000-12-28 08:40:45', 'Ticket', 45, 'Spider Man' , '{"warehouseFk":60,"shipped":"2023-05-16T22:00:00.000Z","nickname":"Super Man","isSigned":true,"isLabeled":true,"isPrinted":true,"packages":0,"hour":0,"isBlocked":false,"hasPriority":false,"companyFk":442,"landed":"2023-05-17T22:00:00.000Z","isBoxed":true,"isDeleted":true,"zoneFk":713,"zonePrice":13,"zoneBonus":0}','{"warehouseFk":61,"shipped":"2023-05-17T22:00:00.000Z","nickname":"Spider Man","isSigned":false,"isLabeled":false,"isPrinted":false,"packages":1,"hour":0,"isBlocked":true,"hasPriority":true,"companyFk":443,"landed":"2023-05-18T22:00:00.000Z","isBoxed":false,"isDeleted":false,"zoneFk":713,"zonePrice":13,"zoneBonus":1}', NULL), - (1, 18, 'select', '2000-12-27 03:40:30', 'Ticket', 45, NULL , NULL, NULL, NULL), - (1, 18, 'insert', '2000-04-10 09:40:15', 'Sale', 4, 'Shield' , NULL, '{"quantity":10,"concept":"Shield", "price": 10.5, "itemFk": 1}', NULL), - (1, 18, 'insert', '1999-05-09 10:00:00', 'Ticket', 45, 'Super Man' , NULL, '{"id":45,"clientFk":8608,"warehouseFk":60,"shipped":"2023-05-16T22:00:00.000Z","nickname":"Super Man","addressFk":48637,"isSigned":true,"isLabeled":true,"isPrinted":true,"packages":0,"hour":0,"created":"2023-05-16T11:42:56.000Z","isBlocked":false,"hasPriority":false,"companyFk":442,"agencyModeFk":639,"landed":"2023-05-17T22:00:00.000Z","isBoxed":true,"isDeleted":true,"zoneFk":713,"zonePrice":13,"zoneBonus":0}', NULL); + VALUES + (1, NULL, 'delete', '2001-06-09 11:00:04', 'Ticket', 45, 'Spider Man' , NULL, NULL, NULL), + (1, 18, 'select', '2001-06-09 11:00:03', 'Ticket', 45, 'Spider Man' , NULL, NULL, NULL), + (1, NULL, 'update', '2001-05-09 10:00:02', 'Sale', 5, 'Armor' , '{"isPicked": false}','{"isPicked": true}', NULL), + (1, 18, 'update', '2001-01-01 10:05:01', 'Sale', 5, 'Armor' , NULL, NULL, 'Armor quantity changed from ''15'' to ''10'''), + (1, NULL, 'delete', '2001-01-01 10:00:10', 'Sale', 4, 'Shield' , '{"quantity":10,"concept":"Shield"}', NULL, NULL), + (1, 18, 'insert', '2000-12-31 15:00:05', 'Sale', 1, 'Armor' , NULL,'{"quantity":15,"concept":"Armor", "price": 345.99, "itemFk": 2}', NULL), + (1, 18, 'update', '2000-12-28 08:40:45', 'Ticket', 45, 'Spider Man' , '{"warehouseFk":60,"shipped":"2023-05-16T22:00:00.000Z","nickname":"Super Man","isSigned":true,"isLabeled":true,"isPrinted":true,"packages":0,"hour":0,"isBlocked":false,"hasPriority":false,"companyFk":442,"landed":"2023-05-17T22:00:00.000Z","isBoxed":true,"isDeleted":true,"zoneFk":713,"zonePrice":13,"zoneBonus":0}','{"warehouseFk":61,"shipped":"2023-05-17T22:00:00.000Z","nickname":"Spider Man","isSigned":false,"isLabeled":false,"isPrinted":false,"packages":1,"hour":0,"isBlocked":true,"hasPriority":true,"companyFk":443,"landed":"2023-05-18T22:00:00.000Z","isBoxed":false,"isDeleted":false,"zoneFk":713,"zonePrice":13,"zoneBonus":1}', NULL), + (1, 18, 'select', '2000-12-27 03:40:30', 'Ticket', 45, NULL , NULL, NULL, NULL), + (1, 18, 'insert', '2000-04-10 09:40:15', 'Sale', 4, 'Shield' , NULL, '{"quantity":10,"concept":"Shield", "price": 10.5, "itemFk": 1}', NULL), + (1, 18, 'insert', '1999-05-09 10:00:00', 'Ticket', 45, 'Super Man' , NULL, '{"id":45,"clientFk":8608,"warehouseFk":60,"shipped":"2023-05-16T22:00:00.000Z","nickname":"Super Man","addressFk":48637,"isSigned":true,"isLabeled":true,"isPrinted":true,"packages":0,"hour":0,"created":"2023-05-16T11:42:56.000Z","isBlocked":false,"hasPriority":false,"companyFk":442,"agencyModeFk":639,"landed":"2023-05-17T22:00:00.000Z","isBoxed":true,"isDeleted":true,"zoneFk":713,"zonePrice":13,"zoneBonus":0}', NULL); INSERT INTO `vn`.`osTicketConfig` (`id`, `host`, `user`, `password`, `oldStatus`, `newStatusId`, `day`, `comment`, `hostDb`, `userDb`, `passwordDb`, `portDb`, `responseType`, `fromEmailId`, `replyTo`) - VALUES - (1, 'http://localhost:56596/scp', 'ostadmin', 'Admin1', '1,6', 3, 60, 'Este CAU se ha cerrado automáticamente. Si el problema persiste responda a este mensaje.', 'localhost', 'osticket', 'osticket', 40003, 'reply', 1, 'all'); + VALUES + (1, 'http://localhost:56596/scp', 'ostadmin', 'Admin1', '1,6', 3, 60, 'Este CAU se ha cerrado automáticamente. Si el problema persiste responda a este mensaje.', 'localhost', 'osticket', 'osticket', 40003, 'reply', 1, 'all'); INSERT INTO `vn`.`mdbApp` (`app`, `baselineBranchFk`, `userFk`, `locked`) - VALUES - ('foo', 'master', NULL, NULL), - ('bar', 'test', 9, util.VN_NOW()); + VALUES + ('foo', 'master', NULL, NULL), + ('bar', 'test', 9, util.VN_NOW()); INSERT INTO `vn`.`profileType` (`id`, `name`) - VALUES - (1, 'working'); + VALUES + (1, 'working'); INSERT INTO `salix`.`url` (`appName`, `environment`, `url`) - VALUES - ('lilium', 'development', 'http://localhost:9000/#/'), - ('hedera', 'development', 'http://localhost:9090/'), - ('salix', 'development', 'http://localhost:5000/#!/'), - ('docuware', 'development', 'http://docuware'); + VALUES + ('lilium', 'development', 'http://localhost:9000/#/'), + ('hedera', 'development', 'http://localhost:9090/'), + ('salix', 'development', 'http://localhost:5000/#!/'), + ('docuware', 'development', 'http://docuware'); INSERT INTO `vn`.`report` (`id`, `name`, `paperSizeFk`, `method`) - VALUES - (3, 'invoice', NULL, 'InvoiceOuts/{refFk}/invoice-out-pdf'); + VALUES + (3, 'invoice', NULL, 'InvoiceOuts/{refFk}/invoice-out-pdf'); INSERT INTO `vn`.`payDemDetail` (`id`, `detail`) - VALUES - (1, 1), - (2, 20), - (7, 1); + VALUES + (1, 1), + (2, 20), + (7, 1); INSERT INTO `vn`.`workerConfig` (`id`, `businessUpdated`, `roleFk`, `payMethodFk`, `businessTypeFk`) - VALUES - (1, NULL, 1, 4, 'worker'); + VALUES + (1, NULL, 1, 4, 'worker'); INSERT INTO `vn`.`ticketRefund`(`refundTicketFk`, `originalTicketFk`) - VALUES - (24, 8); + VALUES + (24, 8); INSERT INTO `vn`.`deviceProductionModels` (`code`) - VALUES - ('BLACKVIEW'), - ('DODGEE'), - ('ZEBRA'); + VALUES + ('BLACKVIEW'), + ('DODGEE'), + ('ZEBRA'); INSERT INTO `vn`.`deviceProductionState` (`code`, `description`) - VALUES - ('active', 'activo'), - ('idle', 'inactivo'), - ('lost', 'perdida'), - ('repair', 'reparación'), - ('retired', 'retirada'); + VALUES + ('active', 'activo'), + ('idle', 'inactivo'), + ('lost', 'perdida'), + ('repair', 'reparación'), + ('retired', 'retirada'); INSERT INTO `vn`.`deviceProduction` (`imei`, `modelFk`, `macWifi`, `serialNumber`, `android_id`, `purchased`, `stateFk`, `isInScalefusion`, `description`) VALUES - ('ime1', 'BLACKVIEW', 'macWifi1', 'serialNumber1', 'androidid11234567890', util.VN_NOW(), 'active', 0, NULL), - ('ime2', 'DODGEE', 'macWifi2', 'serialNumber2', 'androidid21234567890', util.VN_NOW(), 'idle', 0, NULL), - ('ime3', 'ZEBRA', 'macWifi3', 'serialNumber3', 'androidid31234567890', util.VN_NOW(), 'active', 0, NULL), - ('ime4', 'BLACKVIEW', 'macWifi4', 'serialNumber4', 'androidid41234567890', util.VN_NOW(), 'idle', 0, NULL); + ('ime1', 'BLACKVIEW', 'macWifi1', 'serialNumber1', 'androidid11234567890', util.VN_NOW(), 'active', 0, NULL), + ('ime2', 'DODGEE', 'macWifi2', 'serialNumber2', 'androidid21234567890', util.VN_NOW(), 'idle', 0, NULL), + ('ime3', 'ZEBRA', 'macWifi3', 'serialNumber3', 'androidid31234567890', util.VN_NOW(), 'active', 0, NULL), + ('ime4', 'BLACKVIEW', 'macWifi4', 'serialNumber4', 'androidid41234567890', util.VN_NOW(), 'idle', 0, NULL); INSERT INTO `vn`.`deviceProductionUser` (`deviceProductionFk`, `userFk`, `created`) - VALUES - (1, 1, util.VN_NOW()), - (3, 3, util.VN_NOW()); + VALUES + (1, 1, util.VN_NOW()), + (3, 3, util.VN_NOW()); INSERT INTO `vn`.`workerTimeControlMail` (`id`, `workerFk`, `year`, `week`, `state`, `updated`, `sendedCounter`, `reason`) - VALUES - (1, 9, 2000, 49, 'REVISE', util.VN_NOW(), 1, 'test2'), - (2, 9, 2000, 50, 'SENDED', util.VN_NOW(), 1, NULL), - (3, 9, 2000, 51, 'CONFIRMED', util.VN_NOW(), 1, NULL), - (4, 9, 2001, 1, 'SENDED', util.VN_NOW(), 1, NULL); + VALUES + (1, 9, 2000, 49, 'REVISE', util.VN_NOW(), 1, 'test2'), + (2, 9, 2000, 50, 'SENDED', util.VN_NOW(), 1, NULL), + (3, 9, 2000, 51, 'CONFIRMED', util.VN_NOW(), 1, NULL), + (4, 9, 2001, 1, 'SENDED', util.VN_NOW(), 1, NULL); INSERT INTO `vn`.`wagonTypeColor` (`id`, `name`, `rgb`) - VALUES - (1, 'white', '#ffffff'), - (2, 'red', '#ff0000'), - (3, 'green', '#00ff00'), - (4, 'blue', '#0000ff'); + VALUES + (1, 'white', '#ffffff'), + (2, 'red', '#ff0000'), + (3, 'green', '#00ff00'), + (4, 'blue', '#0000ff'); INSERT INTO `vn`.`wagonConfig` (`id`, `width`, `height`, `maxWagonHeight`, `minHeightBetweenTrays`, `maxTrays`, `defaultTrayColorFk`) - VALUES - (1, 1350, 1900, 200, 50, 6, 1); + VALUES + (1, 1350, 1900, 200, 50, 6, 1); INSERT INTO `vn`.`wagonType` (`id`, `name`, `divisible`) - VALUES - (1, 'Wagon Type #1', 1); + VALUES + (1, 'Wagon Type #1', 1); INSERT INTO `vn`.`wagonTypeTray` (`id`, `wagonTypeFk`, `height`, `wagonTypeColorFk`) - VALUES - (1, 1, 0, 1), - (2, 1, 50, 2), - (3, 1, 100, 3); + VALUES + (1, 1, 0, 1), + (2, 1, 50, 2), + (3, 1, 100, 3); INSERT INTO `salix`.`accessTokenConfig` (`id`, `renewPeriod`, `courtesyTime`, `renewInterval`) - VALUES - (1, 21600, 60, 300); + VALUES + (1, 21600, 60, 300); INSERT INTO `vn`.`travelConfig` (`id`, `warehouseInFk`, `warehouseOutFk`, `agencyFk`, `companyFk`) - VALUES - (1, 1, 1, 1, 442); + VALUES + (1, 1, 1, 1, 442); INSERT INTO `vn`.`buyConfig` (`id`, `monthsAgo`) - VALUES - (1, 6); + VALUES + (1, 6); INSERT INTO `vn`.`invoiceInSerial` (`code`, `description`, `cplusTerIdNifFk`, `taxAreaFk`) - VALUES - ('C', 'Asgard', 1, 'WORLD'), - ('E', 'Midgard', 1, 'CEE'), - ('R', 'Jotunheim', 1, 'NATIONAL'), - ('W', 'Vanaheim', 1, 'WORLD'); + VALUES + ('C', 'Asgard', 1, 'WORLD'), + ('E', 'Midgard', 1, 'CEE'), + ('R', 'Jotunheim', 1, 'NATIONAL'), + ('W', 'Vanaheim', 1, 'WORLD'); INSERT INTO `hedera`.`imageConfig` (`id`, `maxSize`, `useXsendfile`, `url`) - VALUES - (1, 0, 0, 'marvel.com'); + VALUES + (1, 0, 0, 'marvel.com'); INSERT INTO vn.XDiario (id, ASIEN, FECHA, SUBCTA, CONTRA, CONCEPTO, EURODEBE, EUROHABER, BASEEURO, SERIE, FACTURA, IVA, RECEQUIV, CLAVE, CAMBIO, DEBEME, HABERME, AUXILIAR, MONEDAUSO, TIPOOPE, NFACTICK, TERIDNIF, TERNIF, TERNOM, OPBIENES, L340, enlazado, FECHA_EX, LRECT349, empresa_id, LDIFADUAN, METAL, METALIMP, CLIENTE, METALEJE, FECHA_OP, FACTURAEX, TIPOCLAVE, TIPOEXENCI, TIPONOSUJE, TIPOFACT, TIPORECTIF, SERIE_RT, FACTU_RT, BASEIMP_RT, BASEIMP_RF, RECTIFICA, FECHA_RT, FECREGCON, enlazadoSage) - VALUES - (1, 1.0, util.VN_CURDATE(), '4300001104', NULL, 'n/fra T3333333', 8.88, NULL, NULL, NULL, '0', NULL, 0.00, NULL, NULL, NULL, NULL, NULL, '2', NULL, 1, 2, 'I.F.', 'Nombre Importador', 1, 0, 0, util.VN_CURDATE(), 0, 442, 0, 0, 0.00, NULL, NULL, util.VN_CURDATE(), NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 1), - (2, 1.0, util.VN_CURDATE(), '2000000000', '4300001104', 'n/fra T3333333 Tony Stark', NULL, 8.07, NULL, NULL, '0', NULL, 0.00, NULL, NULL, NULL, NULL, NULL, '2', NULL, 1, 2, 'I.F.', 'Nombre Importador', 1, 0, 0, util.VN_CURDATE(), 0, 442, 0, 0, 0.00, NULL, NULL, util.VN_CURDATE(), NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 1), - (3, 1.0, util.VN_CURDATE(), '4770000010', '4300001104', 'Inmovilizado pendiente : n/fra T3333333 Tony Stark', NULL, 0.81, 8.07, 'T', '3333333', 10.00, NULL, NULL, NULL, NULL, NULL, '', '2', '', 1, 1, '06089160W', 'IRON MAN', 1, 1, 0, util.VN_CURDATE(), 0, 442, 0, 0, 0.00, NULL, NULL, util.VN_CURDATE(), NULL, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 1), - (4, 2.0, util.VN_CURDATE(), '4300001104', NULL, 'n/fra T4444444', 8.88, NULL, NULL, NULL, '0', NULL, 0.00, NULL, NULL, NULL, NULL, NULL, '2', NULL, 1, 2, 'I.F.', 'Nombre Importador', 1, 0, 0, util.VN_CURDATE(), 0, 442, 0, 0, 0.00, NULL, NULL, util.VN_CURDATE(), NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0), - (5, 2.0, util.VN_CURDATE(), '2000000000', '4300001104', 'n/fra T4444444 Tony Stark', NULL, 8.07, NULL, NULL, '0', NULL, 0.00, NULL, NULL, NULL, NULL, NULL, '2', NULL, 1, 2, 'I.F.', 'Nombre Importador', 1, 0, 0, util.VN_CURDATE(), 0, 442, 0, 0, 0.00, NULL, NULL, util.VN_CURDATE(), NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0), - (6, 2.0, util.VN_CURDATE(), '4770000010', '4300001104', 'Inmovilizado pendiente : n/fra T4444444 Tony Stark', NULL, 0.81, 8.07, 'T', '4444444', 10.00, NULL, NULL, NULL, NULL, NULL, '', '2', '', 1, 1, '06089160W', 'IRON MAN', 1, 1, 0, util.VN_CURDATE(), 0, 442, 0, 0, 0.00, NULL, NULL, util.VN_CURDATE(), NULL, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0); + VALUES + (1, 1.0, util.VN_CURDATE(), '4300001104', NULL, 'n/fra T3333333', 8.88, NULL, NULL, NULL, '0', NULL, 0.00, NULL, NULL, NULL, NULL, NULL, '2', NULL, 1, 2, 'I.F.', 'Nombre Importador', 1, 0, 0, util.VN_CURDATE(), 0, 442, 0, 0, 0.00, NULL, NULL, util.VN_CURDATE(), NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 1), + (2, 1.0, util.VN_CURDATE(), '2000000000', '4300001104', 'n/fra T3333333 Tony Stark', NULL, 8.07, NULL, NULL, '0', NULL, 0.00, NULL, NULL, NULL, NULL, NULL, '2', NULL, 1, 2, 'I.F.', 'Nombre Importador', 1, 0, 0, util.VN_CURDATE(), 0, 442, 0, 0, 0.00, NULL, NULL, util.VN_CURDATE(), NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 1), + (3, 1.0, util.VN_CURDATE(), '4770000010', '4300001104', 'Inmovilizado pendiente : n/fra T3333333 Tony Stark', NULL, 0.81, 8.07, 'T', '3333333', 10.00, NULL, NULL, NULL, NULL, NULL, '', '2', '', 1, 1, '06089160W', 'IRON MAN', 1, 1, 0, util.VN_CURDATE(), 0, 442, 0, 0, 0.00, NULL, NULL, util.VN_CURDATE(), NULL, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 1), + (4, 2.0, util.VN_CURDATE(), '4300001104', NULL, 'n/fra T4444444', 8.88, NULL, NULL, NULL, '0', NULL, 0.00, NULL, NULL, NULL, NULL, NULL, '2', NULL, 1, 2, 'I.F.', 'Nombre Importador', 1, 0, 0, util.VN_CURDATE(), 0, 442, 0, 0, 0.00, NULL, NULL, util.VN_CURDATE(), NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0), + (5, 2.0, util.VN_CURDATE(), '2000000000', '4300001104', 'n/fra T4444444 Tony Stark', NULL, 8.07, NULL, NULL, '0', NULL, 0.00, NULL, NULL, NULL, NULL, NULL, '2', NULL, 1, 2, 'I.F.', 'Nombre Importador', 1, 0, 0, util.VN_CURDATE(), 0, 442, 0, 0, 0.00, NULL, NULL, util.VN_CURDATE(), NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0), + (6, 2.0, util.VN_CURDATE(), '4770000010', '4300001104', 'Inmovilizado pendiente : n/fra T4444444 Tony Stark', NULL, 0.81, 8.07, 'T', '4444444', 10.00, NULL, NULL, NULL, NULL, NULL, '', '2', '', 1, 1, '06089160W', 'IRON MAN', 1, 1, 0, util.VN_CURDATE(), 0, 442, 0, 0, 0.00, NULL, NULL, util.VN_CURDATE(), NULL, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0); INSERT INTO `vn`.`mistakeType` (`id`, `description`) - VALUES - (1, 'Incorrect quantity'); + VALUES + (1, 'Incorrect quantity'); INSERT INTO `vn`.`invoiceCorrectionType` (`id`, `description`) - VALUES - (1, 'Error in VAT calculation'), - (2, 'Error in sales details'), - (3, 'Error in customer data'); + VALUES + (1, 'Error in VAT calculation'), + (2, 'Error in sales details'), + (3, 'Error in customer data'); UPDATE `vn`.`client` SET fi='65004204V' @@ -3144,56 +3144,56 @@ UPDATE `vn`.`worker` INSERT INTO `account`.`mailAliasAcl` (`mailAliasFk`, `roleFk`) - VALUES - (1, 1), - (2, 9), - (3, 15); + VALUES + (1, 1), + (2, 9), + (3, 15); INSERT INTO `vn`.`docuwareTablet` (`tablet`,`description`) VALUES - ('Tablet1','Jarvis tablet'), - ('Tablet2','Avengers tablet'); + ('Tablet1','Jarvis tablet'), + ('Tablet2','Avengers tablet'); INSERT INTO `vn`.`sms` (`id`, `senderFk`, `sender`, `destination`, `message`, `statusCode`, `status`, `created`) - VALUES (1, 66, '111111111', '0001111111111', 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.', 0, 'OK', util.VN_CURDATE()), - (2, 66, '222222222', '0002222222222', 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.', 0, 'PENDING', util.VN_CURDATE()), - (3, 66, '333333333', '0003333333333', 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.', 0, 'ERROR', util.VN_CURDATE()), - (4, 66, '444444444', '0004444444444', 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.', 0, 'OK', util.VN_CURDATE()); + VALUES (1, 66, '111111111', '0001111111111', 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.', 0, 'OK', util.VN_CURDATE()), + (2, 66, '222222222', '0002222222222', 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.', 0, 'PENDING', util.VN_CURDATE()), + (3, 66, '333333333', '0003333333333', 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.', 0, 'ERROR', util.VN_CURDATE()), + (4, 66, '444444444', '0004444444444', 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.', 0, 'OK', util.VN_CURDATE()); INSERT INTO `vn`.`clientSms` (`id`, `clientFk`, `smsFk`, `ticketFk`) - VALUES(1, 1103, 1, NULL), - (2, 1103, 2, NULL), - (3, 1103, 3, 32), - (4, 1103, 4, 32), - (13, 1101, 1, NULL), - (14, 1101, 4, 27); + VALUES(1, 1103, 1, NULL), + (2, 1103, 2, NULL), + (3, 1103, 3, 32), + (4, 1103, 4, 32), + (13, 1101, 1, NULL), + (14, 1101, 4, 27); INSERT INTO `vn`.`entryDms`(`entryFk`, `dmsFk`, `editorFk`) - VALUES - (1, 9, 9); + VALUES + (1, 9, 9); INSERT INTO vn.entryType (code,description,isInformal) VALUES ('devaluation','Devaluation',0), - ('internal','Internal',1), - ('inventory','Inventory',1), - ('life','Life',1), - ('packaging','Packaging',0), - ('payment','Refund',0), - ('product','Product',0), - ('regularization','Regularization',1), - ('return','Return',0), - ('transport','Delivery',0); + ('internal','Internal',1), + ('inventory','Inventory',1), + ('life','Life',1), + ('packaging','Packaging',0), + ('payment','Refund',0), + ('product','Product',0), + ('regularization','Regularization',1), + ('return','Return',0), + ('transport','Delivery',0); INSERT INTO `vn`.`cmr` (id,truckPlate,observations,senderInstruccions,paymentInstruccions,specialAgreements,companyFk,addressToFk,addressFromFk,supplierFk,packagesList,merchandiseDetail,state) VALUES (1,'123456A','Lorem ipsum dolor sit amet','Lorem ipsum dolor sit amet','Lorem ipsum dolor sit amet','Lorem ipsum dolor sit amet',442,1,2,1,'Lorem ipsum dolor sit amet','Lorem ipsum dolor sit amet','Lorem ipsum dolor sit amet'), - (2,'123456N','Lorem ipsum dolor sit amet','Lorem ipsum dolor sit amet','Lorem ipsum dolor sit amet','Lorem ipsum dolor sit amet',69,3,4,2,'Lorem ipsum dolor sit amet','Lorem ipsum dolor sit amet','Lorem ipsum dolor sit amet'), - (3,'123456B','Lorem ipsum dolor sit amet','Lorem ipsum dolor sit amet','Lorem ipsum dolor sit amet','Lorem ipsum dolor sit amet',567,5,6,69,'Lorem ipsum dolor sit amet','Lorem ipsum dolor sit amet','Lorem ipsum dolor sit amet'); + (2,'123456N','Lorem ipsum dolor sit amet','Lorem ipsum dolor sit amet','Lorem ipsum dolor sit amet','Lorem ipsum dolor sit amet',69,3,4,2,'Lorem ipsum dolor sit amet','Lorem ipsum dolor sit amet','Lorem ipsum dolor sit amet'), + (3,'123456B','Lorem ipsum dolor sit amet','Lorem ipsum dolor sit amet','Lorem ipsum dolor sit amet','Lorem ipsum dolor sit amet',567,5,6,69,'Lorem ipsum dolor sit amet','Lorem ipsum dolor sit amet','Lorem ipsum dolor sit amet'); UPDATE vn.department - SET workerFk = null; + 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); INSERT IGNORE INTO vn.intrastat @@ -3243,30 +3243,30 @@ INSERT IGNORE INTO vn.sector INSERT INTO vn.parking (id,sectorFk, code, pickingOrder) - VALUES (4,9991, 'A-01-1', 1), - (5,9991, 'A-02-2', 2), - (6,9991, 'A-03-3', 3), - (7,9991, 'A-04-4', 4), - (8,9991, 'A-05-5', 5), - (9,9992, 'P-01-1', 6), - (10,9992, 'P-02-2', 7), - (11,9992, 'P-03-3', 8), - (12,9993, 'M-01-1', 9), - (13,9993, 'M-02-2', 10), - (14,9993, 'M-03-3', 11); + VALUES (4,9991, 'A-01-1', 1), + (5,9991, 'A-02-2', 2), + (6,9991, 'A-03-3', 3), + (7,9991, 'A-04-4', 4), + (8,9991, 'A-05-5', 5), + (9,9992, 'P-01-1', 6), + (10,9992, 'P-02-2', 7), + (11,9992, 'P-03-3', 8), + (12,9993, 'M-01-1', 9), + (13,9993, 'M-02-2', 10), + (14,9993, 'M-03-3', 11); INSERT INTO vn.shelving (code, parkingFk, priority) - VALUES ('NAA', 4, 1), - ('NBB', 5, 1), - ('NCC', 6, 1), - ('NDD', 7, 1), - ('NEE', 8, 1), - ('PAA', 9, 1), - ('PBB', 10, 1), - ('PCC', 11, 1), - ('MAA', 12, 1), - ('MBB', 13, 1), - ('MCC', 14, 1); + VALUES ('NAA', 4, 1), + ('NBB', 5, 1), + ('NCC', 6, 1), + ('NDD', 7, 1), + ('NEE', 8, 1), + ('PAA', 9, 1), + ('PBB', 10, 1), + ('PCC', 11, 1), + ('MAA', 12, 1), + ('MBB', 13, 1), + ('MCC', 14, 1); INSERT IGNORE INTO vn.itemType SET id = 999, @@ -3775,7 +3775,7 @@ VALUES (1000000, 18, 25, '2023-09-21', 25, 500, NULL, 103, NULL), (999996, 19, 5, '2023-09-27', 1, 5, NULL, 103, NULL), (999997, 21, 10, '2023-09-27', 5, 100, NULL, 103, NULL), - (1000000, 16, 25, '2023-08-21',25, 500, NULL, NULL, NULL); + (1000000, 16, 25, '2023-08-21',25, 500, NULL, NULL, NULL); -- Previous for Bolas de madera INSERT IGNORE INTO vn.sectorCollection @@ -3788,7 +3788,7 @@ INSERT IGNORE INTO vn.saleGroup userFk = 1, parkingFk = 9, sectorFk = 9992, - ticketFk = 36; + ticketFk = 36; INSERT IGNORE INTO vn.sectorCollectionSaleGroup SET id = 9999, @@ -3802,7 +3802,7 @@ INSERT vn.saleGroupDetail INSERT INTO vn.saleTracking SET id = 7, - saleFk = 99996, + saleFk = 99996, isChecked = TRUE, workerFk = 103, stateFk = 28; @@ -3829,8 +3829,8 @@ UPDATE vn.sale INSERT INTO vn.workerAppTester(workerFk) VALUES(66); INSERT INTO `vn`.`machine` (`plate`, `maker`, `model`, `warehouseFk`, `departmentFk`, `type`, `use`, `productionYear`, `workerFk`, `companyFk`) - VALUES - ('RE-003', 'IRON', 'JPH-24', 60, 23, 'ELECTRIC TOW', 'Drag cars', 2020, 103, 442); + VALUES + ('RE-003', 'IRON', 'JPH-24', 60, 23, 'ELECTRIC TOW', 'Drag cars', 2020, 103, 442); UPDATE vn.buy SET itemOriginalFk = 1 WHERE id = 1; @@ -3845,7 +3845,7 @@ INSERT INTO vn.ticketLog (originFk,userFk,`action`,creationDate,changedModel,new VALUES (18,9,'insert','2001-01-01 11:01:00.000','Ticket','{"isDeleted":true}',45,'Super Man'); INSERT INTO `vn`.`supplierDms`(`supplierFk`, `dmsFk`, `editorFk`) - VALUES (1, 10, 9); + VALUES (1, 10, 9); INSERT INTO `vn`.`accountReconciliation` (supplierAccountFk,operationDated,valueDated,amount,concept,debitCredit,calculatedCode,created) VALUES @@ -3863,11 +3863,11 @@ INSERT INTO `vn`.`accountReconciliationConfig`(currencyFk, warehouseFk) INSERT INTO vn.workerTeam(id, team, workerFk) - VALUES - (8, 1, 19); + VALUES + (8, 1, 19); INSERT INTO vn.workCenter (id, name, payrollCenterFk, counter, warehouseFk, street, geoFk, deliveryManAdjustment) - VALUES(100, 'workCenterOne', 1, NULL, 1, 'gotham', NULL, NULL); + VALUES(100, 'workCenterOne', 1, NULL, 1, 'gotham', NULL, NULL); INSERT INTO `vn`.`locker` (code, gender, workerFk) VALUES ('1M', 'M', 1), @@ -3880,11 +3880,11 @@ INSERT INTO `vn`.`locker` (code, gender, workerFk) VALUES ('4F', 'F', NULL); INSERT INTO `vn`.`ledgerCompany` SET - fiscalYear = YEAR(util.VN_CURDATE()), - bookEntry = 2; + fiscalYear = YEAR(util.VN_CURDATE()), + bookEntry = 2; INSERT INTO `vn`.`ledgerConfig` SET - maxTolerance = 0.01; + maxTolerance = 0.01; INSERT INTO vn.trainingCourse (workerFk,trainingCourseTypeFk,centerFk,started,ended,hasDiscount,hasDiploma) @@ -3904,8 +3904,8 @@ INSERT INTO vn.sectorCollectionSaleGroup saleGroupFk = 4; INSERT INTO vn.saleGroup (userFk, parkingFk, sectorFk, ticketFk) - VALUES - (1, 1, 1, 37); + VALUES + (1, 1, 1, 37); INSERT INTO vn.sectorCollection SET id = 3, @@ -3941,7 +3941,7 @@ INSERT INTO vn.medicalReview VALUES(3, 9, 2, '2000-01-01', '8:00', 1, 150.0, NULL, NULL); INSERT INTO vn.stockBought (workerFk, bought, reserve, dated) - VALUES(35, 1.00, 1.00, '2001-01-01'); + VALUES(35, 1.00, 1.00, '2001-01-01'); INSERT INTO vn.auctionConfig (id,conversionCoefficient,warehouseFk) VALUES (1,0.6,6); @@ -3984,8 +3984,8 @@ VALUES (6, 'ABA', 'aba'); INSERT IGNORE INTO ormConfig - SET id =1, - selectLimit = 1000; + SET id =1, + selectLimit = 1000; INSERT INTO pbx.queueMultiConfig SET id = 'ring', @@ -3997,12 +3997,12 @@ INSERT INTO pbx.queueMultiConfig ringInUse = 0; INSERT INTO pbx.queue (description, name, config) - VALUES ('X-men', '1000', 1), - ('Avengers', '2000', 1); + VALUES ('X-men', '1000', 1), + ('Avengers', '2000', 1); INSERT IGNORE INTO pbx.queueMember - SET queue = '1000', - extension = '1010'; + SET queue = '1000', + extension = '1010'; UPDATE vn.department SET pbxQueue = '1000' WHERE name = "CAMARA"; UPDATE vn.department SET pbxQueue = '2000' WHERE name = "VENTAS"; @@ -4015,22 +4015,22 @@ INSERT INTO vn.routeComplement (id, dated, workerFk, price, routeActionFk) VALUE INSERT INTO srt.buffer (id, x, y, `size`, `length`, stateFk, typeFk, isActive, code, stratus, hasWorkerWaiting, reserve, routeFk, dayMinute, lastUnloaded, hasStrapper, typeDefaultFk, motors, editorFk) - VALUES (0, 0, 0, 0, NULL, 3, 1, 0, 'ENT', 0, 0, NULL, NULL, NULL, NULL, 0, 1, 1, NULL), - (1, 0, 9900, 0, NULL, 1, 0, 0, 'NOK', 0, 0, NULL, NULL, NULL, NULL, 0, 1, 1, NULL), - (2, 0, 0, 450, 13000, 1, 0, 1, '01A', 1, 1, NULL, NULL, NULL, NULL, 0, 1, 1, NULL), - (3, 1400, 0, 450, 13000, 1, 0, 1, '01B', 1, 0, NULL, NULL, NULL, NULL, 0, 1, 1, NULL), - (4, 0, 500, 500, 13000, 1, 4, 1, '02A', 2, 1, NULL, NULL, NULL, NULL, 1, 4, 13, NULL), - (5, 1400, 500, 500, 13000, 1, 4, 1, '02B', 2, 1, NULL, NULL, NULL, NULL, 1, 4, 13, NULL), - (6, 0, 1000, 500, 13000, 1, 1, 1, '03A', 3, 0, NULL, NULL, NULL, NULL, 0, 1, 1, NULL), - (7, 1400, 1000, 500, 13000, 1, 1, 1, '03B', 3, 0, NULL, NULL, NULL, NULL, 0, 1, 1, NULL), - (8, 0, 1500, 500, 13000, 1, 0, 1, '04A', 4, 0, NULL, NULL, NULL, NULL, 0, 1, 1, NULL), - (9, 1400, 1500, 500, 13000, 1, 1, 1, '04B', 4, 0, NULL, NULL, NULL, NULL, 0, 1, 1, NULL), - (10, 0, 2000, 500, 13000, 1, 1, 1, '05A', 5, 0, NULL, NULL, NULL, NULL, 0, 1, 1, NULL); + VALUES (0, 0, 0, 0, NULL, 3, 1, 0, 'ENT', 0, 0, NULL, NULL, NULL, NULL, 0, 1, 1, NULL), + (1, 0, 9900, 0, NULL, 1, 0, 0, 'NOK', 0, 0, NULL, NULL, NULL, NULL, 0, 1, 1, NULL), + (2, 0, 0, 450, 13000, 1, 0, 1, '01A', 1, 1, NULL, NULL, NULL, NULL, 0, 1, 1, NULL), + (3, 1400, 0, 450, 13000, 1, 0, 1, '01B', 1, 0, NULL, NULL, NULL, NULL, 0, 1, 1, NULL), + (4, 0, 500, 500, 13000, 1, 4, 1, '02A', 2, 1, NULL, NULL, NULL, NULL, 1, 4, 13, NULL), + (5, 1400, 500, 500, 13000, 1, 4, 1, '02B', 2, 1, NULL, NULL, NULL, NULL, 1, 4, 13, NULL), + (6, 0, 1000, 500, 13000, 1, 1, 1, '03A', 3, 0, NULL, NULL, NULL, NULL, 0, 1, 1, NULL), + (7, 1400, 1000, 500, 13000, 1, 1, 1, '03B', 3, 0, NULL, NULL, NULL, NULL, 0, 1, 1, NULL), + (8, 0, 1500, 500, 13000, 1, 0, 1, '04A', 4, 0, NULL, NULL, NULL, NULL, 0, 1, 1, NULL), + (9, 1400, 1500, 500, 13000, 1, 1, 1, '04B', 4, 0, NULL, NULL, NULL, NULL, 0, 1, 1, NULL), + (10, 0, 2000, 500, 13000, 1, 1, 1, '05A', 5, 0, NULL, NULL, NULL, NULL, 0, 1, 1, NULL); INSERT IGNORE INTO vn.saySimpleCountry (countryFk, channel) VALUES (19, '1169'), (8, '1183'), - (1, '1320'); + (1, '1320'); INSERT IGNORE INTO vn.saySimpleConfig (url, defaultChannel) VALUES ('saysimle-url-mock', '1819'); @@ -4039,13 +4039,13 @@ INSERT INTO vn.workerIrpf (workerFk,spouseNif, geographicMobilityDate) VALUES (1106,'26493101E','2019-09-20'); INSERT INTO vn.referenceRate (currencyFk, dated, value) - VALUES (2, '2000-12-01', 1.0495), - (2, '2001-01-01', 1.0531), - (2, '2001-02-01', 7.6347); + VALUES (2, '2000-12-01', 1.0495), + (2, '2001-01-01', 1.0531), + (2, '2001-02-01', 7.6347); INSERT IGNORE INTO vn.osrmConfig (id,url,tolerance) - VALUES (1,'https://router.project-osrm.org', 0.002); + VALUES (1,'https://router.project-osrm.org', 0.002); INSERT IGNORE INTO vn.inventoryConfig - SET id = 1, - supplierFk = 4; + SET id = 1, + supplierFk = 4; diff --git a/db/versions/11389-yellowChico/00-firstScript.sql b/db/versions/11389-yellowChico/00-firstScript.sql new file mode 100644 index 0000000000..e8fd57e287 --- /dev/null +++ b/db/versions/11389-yellowChico/00-firstScript.sql @@ -0,0 +1,25 @@ +CREATE TABLE vn.parkingCoordinates ( + parkingFk int(11) NOT NULL, + x varchar(5) NOT NULL, + y varchar(5) NOT NULL, + z varchar(5) NOT NULL, + CONSTRAINT parkingCoordinates_pk PRIMARY KEY (parkingFk), + CONSTRAINT parkingCoordinates_parking_FK FOREIGN KEY (parkingFk) REFERENCES vn.parking(id) ON DELETE CASCADE ON UPDATE CASCADE +) +ENGINE=InnoDB +DEFAULT CHARSET=utf8mb3 +COLLATE=utf8mb3_unicode_ci; + +UPDATE vn.parkingCoordinates pc + JOIN vn.parking p ON p.id = pc.parkingFk + SET pc.x = IFNULL(p.`column`, 0), + pc.y = IFNULL(p.`row`, 0), + pc.z = IFNULL(p.`floor`, 0) + WHERE p.`column` IS NOT NULL + OR p.`row` IS NOT NULL + OR p.`floor` IS NOT NULL; + +ALTER TABLE vn.parking + DROP COLUMN `column`, + DROP COLUMN `row`, + DROP COLUMN `floor`; From a8cf01ca198ca5f5f143601ab447860958ad187b Mon Sep 17 00:00:00 2001 From: guillermo Date: Wed, 18 Dec 2024 14:36:59 +0100 Subject: [PATCH 033/149] refactor: refs #8172 Removed column and row columns --- modules/shelving/back/models/parking.json | 8 -------- 1 file changed, 8 deletions(-) diff --git a/modules/shelving/back/models/parking.json b/modules/shelving/back/models/parking.json index a9393fc6a7..251613a504 100644 --- a/modules/shelving/back/models/parking.json +++ b/modules/shelving/back/models/parking.json @@ -12,14 +12,6 @@ "id": true, "description": "Identifier" }, - "column": { - "type": "string", - "required": true - }, - "row": { - "type": "string", - "required": true - }, "code": { "type": "string" }, From 0652d1111292eb7081064e09ff745d36939f002d Mon Sep 17 00:00:00 2001 From: robert Date: Thu, 19 Dec 2024 10:29:50 +0100 Subject: [PATCH 034/149] feat: refs #6702 updatePrice message --- loopback/locale/es.json | 6 ++++-- .../ticket/back/methods/sale/updatePrice.js | 5 +++-- modules/ticket/back/models/sale.js | 20 +++++++++++++------ 3 files changed, 21 insertions(+), 10 deletions(-) diff --git a/loopback/locale/es.json b/loopback/locale/es.json index 68514b9f36..9136d3d01d 100644 --- a/loopback/locale/es.json +++ b/loopback/locale/es.json @@ -123,7 +123,7 @@ "Added sale to ticket": "He añadido la siguiente linea al ticket [{{ticketId}}]({{{ticketUrl}}}): {{{addition}}}", "Changed sale discount": "He cambiado el descuento de las siguientes lineas al ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", "Created claim": "He creado la reclamación [{{claimId}}]({{{claimUrl}}}) de las siguientes lineas del ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", - "Changed sale price": "He cambiado el precio de [{{itemId}} {{concept}}]({{{itemUrl}}}) {{ticketClone}} ({{quantity}}) de {{oldPrice}}€ ➔ *{{newPrice}}€* del ticket [{{ticketId}}]({{{ticketUrl}}})", + "Changed sale price": "He cambiado el precio de [{{itemId}} {{concept}}]({{{itemUrl}}}) {{ticketWeekly}} ({{quantity}}) de {{oldPrice}}€ ➔ *{{newPrice}}€* del ticket [{{ticketId}}]({{{ticketUrl}}})", "Changed sale quantity": "He cambiado {{changes}} del ticket [{{ticketId}}]({{{ticketUrl}}})", "Changes in sales": "la cantidad de [{{itemId}} {{concept}}]({{{itemUrl}}}) de {{oldQuantity}} ➔ *{{newQuantity}}*", "State": "Estado", @@ -393,5 +393,7 @@ "There are tickets to be invoiced": "Hay tickets para esta zona, borralos primero", "Price cannot be blank": "Price cannot be blank", "An item type with the same code already exists": "Un tipo con el mismo código ya existe", - "Holidays to past days not available": "Las vacaciones a días pasados no están disponibles" + "Holidays to past days not available": "Las vacaciones a días pasados no están disponibles", + "Is cloned": "Is cloned", + "Is cloned from": "Is cloned from" } diff --git a/modules/ticket/back/methods/sale/updatePrice.js b/modules/ticket/back/methods/sale/updatePrice.js index b6276c99a0..f1568380b4 100644 --- a/modules/ticket/back/methods/sale/updatePrice.js +++ b/modules/ticket/back/methods/sale/updatePrice.js @@ -113,7 +113,8 @@ module.exports = Self => { const salesPerson = sale.ticket().client().salesPersonUser(); if (salesPerson) { const url = await Self.app.models.Url.getUrl(); - const ticketWeekly = await models.Sale.ticketClone(sale.id); + const ticketWeekly = await models.Sale.ticketWeekly(sale.id); + const message = $t('Changed sale price', { ticketId: sale.ticket().id, itemId: sale.itemFk, @@ -123,7 +124,7 @@ module.exports = Self => { newPrice: newPrice, ticketUrl: `${url}ticket/${sale.ticket().id}/sale`, itemUrl: `${url}item/${sale.itemFk}/summary`, - ticketCloned: ticketWeekly && $t('Is cloned', ticketWeekly) + ticketWeekly: ticketWeekly ? `Is cloned from ticket ${ticketWeekly} de ` : null }); await models.Chat.sendCheckingPresence(ctx, salesPerson.id, message, myOptions); } diff --git a/modules/ticket/back/models/sale.js b/modules/ticket/back/models/sale.js index 2550d76b46..d916794d4b 100644 --- a/modules/ticket/back/models/sale.js +++ b/modules/ticket/back/models/sale.js @@ -137,11 +137,19 @@ module.exports = Self => { throw new UserError('The price of the item changed'); }); - Self.isCloned = async function(saleId) { - // let userId = ctx.req.accessToken.userId; - // return await Self.findById(userId, { - // fields: ['id', 'name', 'nickname'] - // }); - // return ticketId + Self.ticketWeekly = async function(saleId) { + const SaleCloned = Self.app.models.SaleCloned; + + const saleCloned2 = await SaleCloned.findOne({ + where: { + saleClonedFk: saleId + }, + include: { + relation: 'saleOriginal' + } + }); + + return saleCloned2.saleOriginal()?.ticketFk; }; }; + From 9b2fb7a43061abdae76d57051468dc3b12d917e7 Mon Sep 17 00:00:00 2001 From: robert Date: Thu, 19 Dec 2024 11:32:15 +0100 Subject: [PATCH 035/149] feat: refs #6702 sale fix Self.ticketWeekly --- modules/ticket/back/models/sale.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/modules/ticket/back/models/sale.js b/modules/ticket/back/models/sale.js index d916794d4b..3ed4ddb52b 100644 --- a/modules/ticket/back/models/sale.js +++ b/modules/ticket/back/models/sale.js @@ -148,8 +148,7 @@ module.exports = Self => { relation: 'saleOriginal' } }); - - return saleCloned2.saleOriginal()?.ticketFk; + return saleCloned2?.saleOriginal()?.ticketFk || null; }; }; From 086b7aed4b2e2fcf25db2f5b7ddfbdc7075ec09c Mon Sep 17 00:00:00 2001 From: jorgep Date: Tue, 24 Dec 2024 10:40:17 +0100 Subject: [PATCH 036/149] feat: refs #7119 add VehicleState model with data source configuration --- modules/route/back/model-config.json | 3 ++ modules/route/back/models/vehicle-state.json | 29 ++++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 modules/route/back/models/vehicle-state.json diff --git a/modules/route/back/model-config.json b/modules/route/back/model-config.json index fb1c5d7fdd..8b47c5347d 100644 --- a/modules/route/back/model-config.json +++ b/modules/route/back/model-config.json @@ -35,6 +35,9 @@ "Vehicle": { "dataSource": "vn" }, + "VehicleState": { + "dataSource": "vn" + }, "RoutesMonitor": { "dataSource": "vn" } diff --git a/modules/route/back/models/vehicle-state.json b/modules/route/back/models/vehicle-state.json new file mode 100644 index 0000000000..1f71333eb9 --- /dev/null +++ b/modules/route/back/models/vehicle-state.json @@ -0,0 +1,29 @@ +{ + "name": "VehicleState", + "base": "VnModel", + "options": { + "mysql": { + "table": "vehicleState" + } + }, + "properties": { + "id": { + "type": "number", + "id": true + }, + "state": { + "type": "string" + }, + "hasToNotify": { + "type": "number" + } + }, + "acls": [ + { + "accessType": "READ", + "principalType": "ROLE", + "principalId": "$everyone", + "permission": "ALLOW" + } + ] +} \ No newline at end of file From 39fc19646471d0607bdcfa9170de1b2c34694ef3 Mon Sep 17 00:00:00 2001 From: jorgep Date: Tue, 24 Dec 2024 13:01:23 +0100 Subject: [PATCH 037/149] feat: refs #7119 add VehicleEvent and VehicleState models with associated methods and SQL fixtures --- db/dump/fixtures.before.sql | 30 ++++++++--- .../11394-brownAsparagus/00-firstScript.sql | 2 + modules/route/back/methods/vehicle/filter.js | 52 +++++++++++++++++++ modules/route/back/model-config.json | 3 ++ modules/route/back/models/vehicle-event.json | 51 ++++++++++++++++++ modules/route/back/models/vehicle.js | 1 + modules/route/back/models/vehicle.json | 22 ++++++-- 7 files changed, 150 insertions(+), 11 deletions(-) create mode 100644 db/versions/11394-brownAsparagus/00-firstScript.sql create mode 100644 modules/route/back/methods/vehicle/filter.js create mode 100644 modules/route/back/models/vehicle-event.json diff --git a/db/dump/fixtures.before.sql b/db/dump/fixtures.before.sql index 97ed0ae47e..cb9160b6d9 100644 --- a/db/dump/fixtures.before.sql +++ b/db/dump/fixtures.before.sql @@ -849,14 +849,14 @@ INSERT INTO `vn`.`deliveryPoint` (`id`, `name`, `ubication`) VALUES (1, 'Gotham','1007 Mountain Drive, Gotham'); -INSERT INTO `vn`.`vehicle`(`id`, `numberPlate`, `tradeMark`, `model`, `companyFk`, `warehouseFk`, `description`, `m3`, `isActive`, `deliveryPointFk`) +INSERT INTO `vn`.`vehicle`(`id`, `numberPlate`, `tradeMark`, `model`, `companyFk`, `warehouseFk`, `description`, `m3`, `isActive`, `deliveryPointFk`, `chassis`, `leasing`) VALUES - (1, '3333-BAT', 'WAYNE INDUSTRIES', 'BATMOBILE', 442, 1, 'The ultimate war machine', 50, 1, 1), - (2, '1111-IMK', 'STARK INDUSTRIES', 'MARK-III', 442, 1, 'Iron-Man Heavy Armor MARK-III', 18, 1, 1), - (3, '2222-IMK', 'STARK INDUSTRIES', 'MARK-VI', 442, 1, 'Iron-Man Heavy Armor MARK-VI', 16, 1, 1), - (4, '3333-IMK', 'STARK INDUSTRIES', 'MARK-VII', 442, 1, 'Iron-Man Heavy Armor MARK-VII', 14, 1, 1), - (5, '4444-IMK', 'STARK INDUSTRIES', 'MARK-XLII', 442, 1, 'Iron-Man Heavy Armor MARK-XLII', 13, 1, 1), - (6, '5555-IMK', 'STARK INDUSTRIES', 'MARK-XLV', 442, 1, 'Iron-Man Heavy Armor MARK-XLV', 12, 0, 1); + (1, '3333-BAT', 'WAYNE INDUSTRIES', 'BATMOBILE', 442, 1, 'The ultimate war machine', 50, 1, 1, 'XCSC133C60', 'Wayne leasing'), + (2, '1111-IMK', 'STARK INDUSTRIES', 'MARK-III', 442, 1, 'Iron-Man Heavy Armor MARK-III', 18, 1, 1, '', ''), + (3, '2222-IMK', 'STARK INDUSTRIES', 'MARK-VI', 442, 1, 'Iron-Man Heavy Armor MARK-VI', 16, 1, 1, '', ''), + (4, '3333-IMK', 'STARK INDUSTRIES', 'MARK-VII', 442, 1, 'Iron-Man Heavy Armor MARK-VII', 14, 1, 1, '', ''), + (5, '4444-IMK', 'STARK INDUSTRIES', 'MARK-XLII', 442, 1, 'Iron-Man Heavy Armor MARK-XLII', 13, 1, 1, '', ''), + (6, '5555-IMK', 'STARK INDUSTRIES', 'MARK-XLV', 442, 1, 'Iron-Man Heavy Armor MARK-XLV', 12, 0, 1, '', ''); INSERT INTO `vn`.`config`(`id`, `mdbServer`, `fakeEmail`, `defaultersMaxAmount`, `inventoried`) VALUES @@ -4049,3 +4049,19 @@ INSERT IGNORE INTO vn.osrmConfig (id,url,tolerance) INSERT IGNORE INTO vn.inventoryConfig SET id = 1, supplierFk = 4; + +INSERT INTO vn.vehicleState (state, hasToNotify) +VALUES + ('Operativo', NULL), + ('Prestado', NULL), + ('Robado', NULL), + ('Taller', NULL), + ('Targeta SOLRED', NULL), + ('Via T SOLRED', NULL), + ('ITV', NULL); + +INSERT INTO vn.vehicleEvent (started, finished, vehicleStateFk, description, vehicleFk, userFk, notified) +VALUES + ('2000-12-01', '2000-12-02', 4, 'cambio de aceite', 5, 103, NULL), + ('2000-12-15', '2000-12-18', 2, 'viaje fin de curso', 5, 103, NULL), + ('2000-12-20', '2001-01-01', 3, 'llaves puestas', 203, 103, NULL); \ No newline at end of file diff --git a/db/versions/11394-brownAsparagus/00-firstScript.sql b/db/versions/11394-brownAsparagus/00-firstScript.sql new file mode 100644 index 0000000000..c7137bc7b6 --- /dev/null +++ b/db/versions/11394-brownAsparagus/00-firstScript.sql @@ -0,0 +1,2 @@ +INSERT INTO salix.ACL (model, property, accessType, permission, principalType, principalId) + VALUES('Vehicle', 'filter', 'READ', 'ALLOW', 'ROLE', 'delivery'); \ No newline at end of file diff --git a/modules/route/back/methods/vehicle/filter.js b/modules/route/back/methods/vehicle/filter.js new file mode 100644 index 0000000000..9f92ee5ac4 --- /dev/null +++ b/modules/route/back/methods/vehicle/filter.js @@ -0,0 +1,52 @@ +module.exports = Self => { + Self.remoteMethod('filter', { + description: 'Find all instances of the model matched by filter from the data source.', + accessType: 'READ', + accepts: [{ + arg: 'id', + type: 'number' + }], + returns: { + type: ['object'], + root: true + }, + http: { + path: `/filter`, + verb: `GET` + } + }); + + Self.filter = async id => { + const filter = { + fields: ['id', 'numberPlate', 'tradeMark', 'model', 'm3', 'description', 'isActive', 'warehouseFk', 'companyFk', 'countryCodeFk', 'chassis', 'leasing'], + include: [ + { + relation: 'warehouse', + scope: { + fields: ['id', 'name'] + } + }, + { + relation: 'company', + scope: { + fields: ['id', 'code'] + } + }, + { + relation: 'event', + scope: { + fields: ['vehicleFk', 'vehicleStateFk'], + include: { + relation: 'state', + scope: { + fields: ['id', 'state'] + } + } + } + }, + ] + }; + + return Self.find(filter); + }; +}; diff --git a/modules/route/back/model-config.json b/modules/route/back/model-config.json index 8b47c5347d..b951d2560a 100644 --- a/modules/route/back/model-config.json +++ b/modules/route/back/model-config.json @@ -35,6 +35,9 @@ "Vehicle": { "dataSource": "vn" }, + "VehicleEvent": { + "dataSource": "vn" + }, "VehicleState": { "dataSource": "vn" }, diff --git a/modules/route/back/models/vehicle-event.json b/modules/route/back/models/vehicle-event.json new file mode 100644 index 0000000000..324076723c --- /dev/null +++ b/modules/route/back/models/vehicle-event.json @@ -0,0 +1,51 @@ +{ + "name": "VehicleEvent", + "base": "VnModel", + "options": { + "mysql": { + "table": "vehicleEvent" + } + }, + "properties": { + "id": { + "type": "number", + "id": true + }, + "started": { + "type": "date" + }, + "finished": { + "type": "date" + }, + "vehicleStateFk": { + "type": "number" + }, + "description": { + "type": "string" + }, + "vehicleFk": { + "type": "number" + }, + "userFk": { + "type": "number" + }, + "notified": { + "type": "date" + } + }, + "relations": { + "state": { + "type": "belongsTo", + "model": "VehicleState", + "foreignKey": "vehicleStateFk" + } + }, + "acls": [ + { + "accessType": "READ", + "principalType": "ROLE", + "principalId": "$everyone", + "permission": "ALLOW" + } + ] +} \ No newline at end of file diff --git a/modules/route/back/models/vehicle.js b/modules/route/back/models/vehicle.js index 73e3214435..59aa7cb8b7 100644 --- a/modules/route/back/models/vehicle.js +++ b/modules/route/back/models/vehicle.js @@ -1,3 +1,4 @@ module.exports = Self => { require('../methods/vehicle/sorted')(Self); + require('../methods/vehicle/filter')(Self); }; diff --git a/modules/route/back/models/vehicle.json b/modules/route/back/models/vehicle.json index 34a376b897..7dd172017c 100644 --- a/modules/route/back/models/vehicle.json +++ b/modules/route/back/models/vehicle.json @@ -3,7 +3,7 @@ "base": "VnModel", "options": { "mysql": { - "table": "vehicle" + "table": "vehicle" } }, "properties": { @@ -29,6 +29,15 @@ }, "isActive": { "type": "number" + }, + "countryCodeFk": { + "type": "string" + }, + "chassis": { + "type": "string" + }, + "leasing": { + "type": "string" } }, "relations": { @@ -46,14 +55,19 @@ "type": "belongsTo", "model": "DeliveryPoint", "foreignKey": "deliveryPointFk" + }, + "event": { + "type": "belongsTo", + "model": "VehicleEvent", + "foreignKey": "id" } }, "scope": { "where": { "isActive": { - "neq": false - } + "neq": false } + } }, "acls": [ { @@ -63,4 +77,4 @@ "permission": "ALLOW" } ] -} +} \ No newline at end of file From 9aa790ecfd5c0fb67ec0b17d65a59bc8457957bf Mon Sep 17 00:00:00 2001 From: jorgep Date: Tue, 24 Dec 2024 13:27:32 +0100 Subject: [PATCH 038/149] feat: refs #7119 add isKmTruckRate field to Vehicle model and filter --- modules/route/back/methods/vehicle/filter.js | 2 +- modules/route/back/models/vehicle.json | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/modules/route/back/methods/vehicle/filter.js b/modules/route/back/methods/vehicle/filter.js index 9f92ee5ac4..608139a4c9 100644 --- a/modules/route/back/methods/vehicle/filter.js +++ b/modules/route/back/methods/vehicle/filter.js @@ -18,7 +18,7 @@ module.exports = Self => { Self.filter = async id => { const filter = { - fields: ['id', 'numberPlate', 'tradeMark', 'model', 'm3', 'description', 'isActive', 'warehouseFk', 'companyFk', 'countryCodeFk', 'chassis', 'leasing'], + fields: ['id', 'numberPlate', 'tradeMark', 'model', 'm3', 'description', 'isActive', 'warehouseFk', 'companyFk', 'countryCodeFk', 'chassis', 'leasing', 'isKmTruckRate'], include: [ { relation: 'warehouse', diff --git a/modules/route/back/models/vehicle.json b/modules/route/back/models/vehicle.json index 7dd172017c..a98c7cab74 100644 --- a/modules/route/back/models/vehicle.json +++ b/modules/route/back/models/vehicle.json @@ -38,6 +38,9 @@ }, "leasing": { "type": "string" + }, + "isKmTruckRate": { + "type": "number" } }, "relations": { From f8c1e2aacfd2071716d6030ce1224b3bad35b3de Mon Sep 17 00:00:00 2001 From: jorgep Date: Thu, 26 Dec 2024 16:36:50 +0100 Subject: [PATCH 039/149] feat: refs #7119 add search and filter capabilities to Vehicle model and update related SQL fixtures --- db/dump/fixtures.before.sql | 2 +- modules/route/back/methods/vehicle/filter.js | 88 ++++++++++++++++++-- modules/route/back/models/vehicle.json | 5 +- 3 files changed, 87 insertions(+), 8 deletions(-) diff --git a/db/dump/fixtures.before.sql b/db/dump/fixtures.before.sql index 5516f13290..0189b1137c 100644 --- a/db/dump/fixtures.before.sql +++ b/db/dump/fixtures.before.sql @@ -4064,4 +4064,4 @@ INSERT INTO vn.vehicleEvent (started, finished, vehicleStateFk, description, veh VALUES ('2000-12-01', '2000-12-02', 4, 'cambio de aceite', 5, 103, NULL), ('2000-12-15', '2000-12-18', 2, 'viaje fin de curso', 5, 103, NULL), - ('2000-12-20', '2001-01-01', 3, 'llaves puestas', 203, 103, NULL); \ No newline at end of file + ('2000-12-20', '2001-01-01', 3, 'llaves puestas', 2, 103, NULL); \ No newline at end of file diff --git a/modules/route/back/methods/vehicle/filter.js b/modules/route/back/methods/vehicle/filter.js index 608139a4c9..b6ba306ac9 100644 --- a/modules/route/back/methods/vehicle/filter.js +++ b/modules/route/back/methods/vehicle/filter.js @@ -3,8 +3,48 @@ module.exports = Self => { description: 'Find all instances of the model matched by filter from the data source.', accessType: 'READ', accepts: [{ + arg: 'filter', + type: 'object', + description: 'Filter defining where, order, skip and limit - must be a JSON-encoded string', + http: {source: 'query'} + }, { + arg: 'search', + type: 'string', + description: 'Searchs the vehicle by id or numberPlate', + http: {source: 'query'} + }, { arg: 'id', type: 'number' + }, { + arg: 'description', + type: 'string' + }, { + arg: 'companyFk', + type: 'number' + }, { + arg: 'tradeMark', + type: 'string' + }, { + arg: 'numberPlate', + type: 'string' + }, { + arg: 'warehouseFk', + type: 'number' + }, { + arg: 'chassis', + type: 'string' + }, { + arg: 'leasing', + type: 'string' + }, { + arg: 'countryCodeFk', + type: 'string' + }, { + arg: 'isKmTruckRate', + type: 'boolean' + }, { + arg: 'vehicleStateFk', + type: 'number' }], returns: { type: ['object'], @@ -16,8 +56,37 @@ module.exports = Self => { } }); - Self.filter = async id => { - const filter = { + Self.filter = async(filter, search, id, description, companyFk, tradeMark, numberPlate, warehouseFk, chassis, leasing, countryCodeFk, isKmTruckRate, vehicleStateFk, options) => { + const models = Self.app.models; + const myOptions = {}; + const myWhere = {}; + const ids = []; + const {limit, order, skip, where} = filter; + + if (typeof options == 'object') Object.assign(myOptions, options); + + if (search) myWhere.or = [{id: search}, {numberPlate: {like: `%${numberPlate}%`}}]; + if (id) ids.push(id); + if (description) myWhere.description = {like: `%${description}%`}; + if (companyFk) myWhere.companyFk = companyFk; + if (tradeMark) myWhere.tradeMark = {like: `%${tradeMark}%`}; + if (numberPlate) myWhere.numberPlate = {like: `%${numberPlate}%`}; + if (warehouseFk) myWhere.warehouseFk = warehouseFk; + if (chassis) myWhere.chassis = {like: `%${chassis}%`}; + if (leasing) myWhere.leasing = {like: `%${leasing}%`}; + if (countryCodeFk) myWhere.countryCodeFk = countryCodeFk; + if (isKmTruckRate) myWhere.isKmTruckRate = isKmTruckRate; + if (vehicleStateFk) { + ids.push(...await models.VehicleEvent.find({ + fields: ['vehicleFk', 'vehicleStateFk'], + where: {vehicleStateFk}}).map(v => v.vehicleFk)); + } + + const idsLeng = ids.length; + if (idsLeng) myWhere.id = idsLeng == 1 ? ids[0] : {inq: ids}; + Object.assign(where || {}, myWhere); + + const myFilter = { fields: ['id', 'numberPlate', 'tradeMark', 'model', 'm3', 'description', 'isActive', 'warehouseFk', 'companyFk', 'countryCodeFk', 'chassis', 'leasing', 'isKmTruckRate'], include: [ { @@ -41,12 +110,21 @@ module.exports = Self => { scope: { fields: ['id', 'state'] } - } + }, + order: ['started DESC'], + limit: 1 } }, - ] + ], + where: myWhere, + order, + limit, + skip, }; - return Self.find(filter); + return Self.find(myFilter, myOptions).map(v => { + v.__data.event = v.event()[0]; + return v; + }); }; }; diff --git a/modules/route/back/models/vehicle.json b/modules/route/back/models/vehicle.json index a98c7cab74..8419ee6840 100644 --- a/modules/route/back/models/vehicle.json +++ b/modules/route/back/models/vehicle.json @@ -60,9 +60,10 @@ "foreignKey": "deliveryPointFk" }, "event": { - "type": "belongsTo", + "type": "hasMany", "model": "VehicleEvent", - "foreignKey": "id" + "foreignKey": "vehicleFk", + "property": "id" } }, "scope": { From b01e4894c9c3a46e3385be2ebeaeb55589fd2aea Mon Sep 17 00:00:00 2001 From: jorgep Date: Thu, 26 Dec 2024 17:02:37 +0100 Subject: [PATCH 040/149] feat: refs #7119 remove vehicleStateFk argument from filter method and simplify search logic --- modules/route/back/methods/vehicle/filter.js | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/modules/route/back/methods/vehicle/filter.js b/modules/route/back/methods/vehicle/filter.js index b6ba306ac9..a6cec02940 100644 --- a/modules/route/back/methods/vehicle/filter.js +++ b/modules/route/back/methods/vehicle/filter.js @@ -42,9 +42,6 @@ module.exports = Self => { }, { arg: 'isKmTruckRate', type: 'boolean' - }, { - arg: 'vehicleStateFk', - type: 'number' }], returns: { type: ['object'], @@ -56,17 +53,15 @@ module.exports = Self => { } }); - Self.filter = async(filter, search, id, description, companyFk, tradeMark, numberPlate, warehouseFk, chassis, leasing, countryCodeFk, isKmTruckRate, vehicleStateFk, options) => { - const models = Self.app.models; + Self.filter = async(filter, search, id, description, companyFk, tradeMark, numberPlate, warehouseFk, chassis, leasing, countryCodeFk, isKmTruckRate, options) => { const myOptions = {}; const myWhere = {}; - const ids = []; const {limit, order, skip, where} = filter; if (typeof options == 'object') Object.assign(myOptions, options); - if (search) myWhere.or = [{id: search}, {numberPlate: {like: `%${numberPlate}%`}}]; - if (id) ids.push(id); + if (search) myWhere.or = [{id: search}, {numberPlate: {like: `%${search}%`}}]; + if (id) myWhere.id = id; if (description) myWhere.description = {like: `%${description}%`}; if (companyFk) myWhere.companyFk = companyFk; if (tradeMark) myWhere.tradeMark = {like: `%${tradeMark}%`}; @@ -76,14 +71,7 @@ module.exports = Self => { if (leasing) myWhere.leasing = {like: `%${leasing}%`}; if (countryCodeFk) myWhere.countryCodeFk = countryCodeFk; if (isKmTruckRate) myWhere.isKmTruckRate = isKmTruckRate; - if (vehicleStateFk) { - ids.push(...await models.VehicleEvent.find({ - fields: ['vehicleFk', 'vehicleStateFk'], - where: {vehicleStateFk}}).map(v => v.vehicleFk)); - } - const idsLeng = ids.length; - if (idsLeng) myWhere.id = idsLeng == 1 ? ids[0] : {inq: ids}; Object.assign(where || {}, myWhere); const myFilter = { From 4d7387af18954d4b599bca6d48d0b78421e0e790 Mon Sep 17 00:00:00 2001 From: jorgep Date: Thu, 26 Dec 2024 17:52:36 +0100 Subject: [PATCH 041/149] feat: refs #7119 add deleteById permission for deliveryBoss role in ACL for Vehicle model --- db/versions/11394-brownAsparagus/00-firstScript.sql | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/db/versions/11394-brownAsparagus/00-firstScript.sql b/db/versions/11394-brownAsparagus/00-firstScript.sql index c7137bc7b6..dfc07411ed 100644 --- a/db/versions/11394-brownAsparagus/00-firstScript.sql +++ b/db/versions/11394-brownAsparagus/00-firstScript.sql @@ -1,2 +1,3 @@ INSERT INTO salix.ACL (model, property, accessType, permission, principalType, principalId) - VALUES('Vehicle', 'filter', 'READ', 'ALLOW', 'ROLE', 'delivery'); \ No newline at end of file + VALUES('Vehicle', 'filter', 'READ', 'ALLOW', 'ROLE', 'delivery'), + ('Vehicle', 'deleteById', 'WRITE', 'ALLOW', 'ROLE', 'deliveryBoss'); \ No newline at end of file From 9731d13a9ac401e1f031087f8d7ca1b7045f5340 Mon Sep 17 00:00:00 2001 From: jorgep Date: Fri, 27 Dec 2024 12:21:46 +0100 Subject: [PATCH 042/149] feat: refs #7119 add updateAttributes ACL --- db/versions/11394-brownAsparagus/00-firstScript.sql | 1 + 1 file changed, 1 insertion(+) diff --git a/db/versions/11394-brownAsparagus/00-firstScript.sql b/db/versions/11394-brownAsparagus/00-firstScript.sql index dfc07411ed..84d6001995 100644 --- a/db/versions/11394-brownAsparagus/00-firstScript.sql +++ b/db/versions/11394-brownAsparagus/00-firstScript.sql @@ -1,3 +1,4 @@ INSERT INTO salix.ACL (model, property, accessType, permission, principalType, principalId) VALUES('Vehicle', 'filter', 'READ', 'ALLOW', 'ROLE', 'delivery'), + ('Vehicle', 'updateAttributes', 'WRITE', 'ALLOW', 'ROLE', 'delivery'), ('Vehicle', 'deleteById', 'WRITE', 'ALLOW', 'ROLE', 'deliveryBoss'); \ No newline at end of file From 3691daded492b3ca57f25875fff0bf9d8a09b2e3 Mon Sep 17 00:00:00 2001 From: Javier Segarra Date: Fri, 27 Dec 2024 13:26:38 +0100 Subject: [PATCH 043/149] feat: refs #7134 add bank name --- .../vn/procedures/supplier_statementWithEntries.sql | 8 ++++++-- modules/supplier/back/methods/supplier/receipts.js | 4 +++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/db/routines/vn/procedures/supplier_statementWithEntries.sql b/db/routines/vn/procedures/supplier_statementWithEntries.sql index b678588fec..625b5195e2 100644 --- a/db/routines/vn/procedures/supplier_statementWithEntries.sql +++ b/db/routines/vn/procedures/supplier_statementWithEntries.sql @@ -40,7 +40,7 @@ BEGIN IFNULL(invoiceCurrency, 0), 2 ) currencyBalance FROM ( - SELECT NULL bankFk, + SELECT NULL bankFk, NULL bank, ii.companyFk, ii.serial, ii.id, @@ -74,6 +74,7 @@ BEGIN GROUP BY iid.id, ii.id UNION ALL SELECT p.bankFk, + a.bank 'bank' , p.companyFk, NULL, p.id, @@ -102,13 +103,15 @@ BEGIN LEFT JOIN accounting a ON a.id = p.bankFk LEFT JOIN payMethod pm ON pm.id = p.payMethodFk LEFT JOIN promissoryNote pn ON pn.paymentFk = p.id + + WHERE p.received >= vBalanceStartingDate AND p.supplierFk = vSupplierFk AND vCurrencyFk IN (p.currencyFk, 0) AND vCompanyFk IN (p.companyFk, 0) AND (vIsConciliated = p.isConciliated OR NOT vIsConciliated) UNION ALL - SELECT NULL, + 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, diff --git a/modules/supplier/back/methods/supplier/receipts.js b/modules/supplier/back/methods/supplier/receipts.js index 474cd256f2..68865a2427 100644 --- a/modules/supplier/back/methods/supplier/receipts.js +++ b/modules/supplier/back/methods/supplier/receipts.js @@ -60,9 +60,11 @@ module.exports = Self => { args.isConciliated ?? false, false ])); - stmts.push(` + const stmt = new ParameterizedSQL(` SELECT * FROM tmp.supplierStatement`); + 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); From a69a767c8a8d3f631d261b3f009d9e85433fd615 Mon Sep 17 00:00:00 2001 From: Javier Segarra Date: Fri, 27 Dec 2024 13:57:28 +0100 Subject: [PATCH 044/149] feat: refs #7134 use filter to order by --- .../back/methods/supplier/receipts.js | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/modules/supplier/back/methods/supplier/receipts.js b/modules/supplier/back/methods/supplier/receipts.js index 68865a2427..9dcef17de5 100644 --- a/modules/supplier/back/methods/supplier/receipts.js +++ b/modules/supplier/back/methods/supplier/receipts.js @@ -1,11 +1,17 @@ const ParameterizedSQL = require('loopback-connector').ParameterizedSQL; +const {buildFilter, mergeFilters} = require('vn-loopback/util/filter'); module.exports = Self => { Self.remoteMethodCtx('receipts', { description: 'Find all clients 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', @@ -21,6 +27,12 @@ module.exports = Self => { description: 'The currency', default: 1, }, + { + arg: 'bankFk', + type: 'number', + description: 'The bank', + default: 1, + }, { arg: 'orderBy', type: 'string', @@ -50,7 +62,12 @@ module.exports = Self => { if (typeof options == 'object') Object.assign(myOptions, options); - + const where = buildFilter(ctx.args, (param, value) => { + switch (param) { + case 'bankFk': + return {'bankFk': value}; + } + }); let stmts = []; stmts.push(new ParameterizedSQL('CALL vn.supplier_statementWithEntries(?,?,?,?,?,?)', [ args.supplierId, @@ -63,6 +80,8 @@ module.exports = Self => { 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`); From 0de4ce9b3c6e005851899930f68f9eb6431fd916 Mon Sep 17 00:00:00 2001 From: jorgep Date: Fri, 27 Dec 2024 15:36:19 +0100 Subject: [PATCH 045/149] feat: refs #7119 add BankPolicy and FuelType models --- db/dump/fixtures.before.sql | 30 ++++++++++++++----- .../11394-brownAsparagus/00-firstScript.sql | 3 +- modules/route/back/model-config.json | 6 ++++ modules/route/back/models/bank-policy.json | 18 +++++++++++ modules/route/back/models/fuel-type.json | 30 +++++++++++++++++++ modules/route/back/models/vehicle.json | 29 ++++++++++++++++++ 6 files changed, 107 insertions(+), 9 deletions(-) create mode 100644 modules/route/back/models/bank-policy.json create mode 100644 modules/route/back/models/fuel-type.json diff --git a/db/dump/fixtures.before.sql b/db/dump/fixtures.before.sql index 0189b1137c..b2d11999dd 100644 --- a/db/dump/fixtures.before.sql +++ b/db/dump/fixtures.before.sql @@ -849,14 +849,14 @@ INSERT INTO `vn`.`deliveryPoint` (`id`, `name`, `ubication`) VALUES (1, 'Gotham','1007 Mountain Drive, Gotham'); -INSERT INTO `vn`.`vehicle`(`id`, `numberPlate`, `tradeMark`, `model`, `companyFk`, `warehouseFk`, `description`, `m3`, `isActive`, `deliveryPointFk`, `chassis`, `leasing`) +INSERT INTO `vn`.`vehicle`(`id`, `numberPlate`, `tradeMark`, `model`, `companyFk`, `warehouseFk`, `description`, `m3`, `isActive`, `deliveryPointFk`, `chassis`, `leasing`, `supplierFk`, `fuelTypeFk`, `bankPolicyFk`) VALUES - (1, '3333-BAT', 'WAYNE INDUSTRIES', 'BATMOBILE', 442, 1, 'The ultimate war machine', 50, 1, 1, 'XCSC133C60', 'Wayne leasing'), - (2, '1111-IMK', 'STARK INDUSTRIES', 'MARK-III', 442, 1, 'Iron-Man Heavy Armor MARK-III', 18, 1, 1, '', ''), - (3, '2222-IMK', 'STARK INDUSTRIES', 'MARK-VI', 442, 1, 'Iron-Man Heavy Armor MARK-VI', 16, 1, 1, '', ''), - (4, '3333-IMK', 'STARK INDUSTRIES', 'MARK-VII', 442, 1, 'Iron-Man Heavy Armor MARK-VII', 14, 1, 1, '', ''), - (5, '4444-IMK', 'STARK INDUSTRIES', 'MARK-XLII', 442, 1, 'Iron-Man Heavy Armor MARK-XLII', 13, 1, 1, '', ''), - (6, '5555-IMK', 'STARK INDUSTRIES', 'MARK-XLV', 442, 1, 'Iron-Man Heavy Armor MARK-XLV', 12, 0, 1, '', ''); + (1, '3333-BAT', 'WAYNE INDUSTRIES', 'BATMOBILE', 442, 1, 'The ultimate war machine', 50, 1, 1, 'XCSC133C60', 'Wayne leasing', 1, 1, 1), + (2, '1111-IMK', 'STARK INDUSTRIES', 'MARK-III', 442, 1, 'Iron-Man Heavy Armor MARK-III', 18, 1, 1, '', '', 2, 2, 2), + (3, '2222-IMK', 'STARK INDUSTRIES', 'MARK-VI', 442, 1, 'Iron-Man Heavy Armor MARK-VI', 16, 1, 1, '', '', 442, 2, null), + (4, '3333-IMK', 'STARK INDUSTRIES', 'MARK-VII', 442, 1, 'Iron-Man Heavy Armor MARK-VII', 14, 1, 1, '', '', 442, 3, null), + (5, '4444-IMK', 'STARK INDUSTRIES', 'MARK-XLII', 442, 1, 'Iron-Man Heavy Armor MARK-XLII', 13, 1, 1, '', '', 442, 4, null), + (6, '5555-IMK', 'STARK INDUSTRIES', 'MARK-XLV', 442, 1, 'Iron-Man Heavy Armor MARK-XLV', 12, 0, 1, '', '', 442, 5, null); INSERT INTO `vn`.`config`(`id`, `mdbServer`, `fakeEmail`, `defaultersMaxAmount`, `inventoried`) VALUES @@ -4064,4 +4064,18 @@ INSERT INTO vn.vehicleEvent (started, finished, vehicleStateFk, description, veh VALUES ('2000-12-01', '2000-12-02', 4, 'cambio de aceite', 5, 103, NULL), ('2000-12-15', '2000-12-18', 2, 'viaje fin de curso', 5, 103, NULL), - ('2000-12-20', '2001-01-01', 3, 'llaves puestas', 2, 103, NULL); \ No newline at end of file + ('2000-12-20', '2001-01-01', 3, 'llaves puestas', 2, 103, NULL); + +INSERT INTO vn.fuelType (id, name, code) +VALUES + (1, 'gasoil', 'gasoil'), + (2, 'gas', 'gas'), + (3, 'adblue', 'adblue'), + (4, 'gasolina', 'gasolina'), + (5, 'gasoil-frigo', 'gasoil-frigo'), + (6, 'electrico', 'electric'); + +INSERT INTO vn.bankPolicy (id, `ref`, amount, committedFee, nonCommittedFee, annualFee, started, ended, accountingFk, companyFk, supplierFk, description, hasGuarantee, dmsFk, notaryFk, currencyFk, amortizationTypeFk, periodicityTypeFk, insuranceExpired) +VALUES + (1, '11112222', 500000.0, 0.028, 0.0, 0.001, '2001-01-01', '2001-02-01', 1, 442, NULL, NULL, 0, NULL, NULL, 1, NULL, NULL, NULL), + (2, '33334444', 100000.0, 0.017, 0.0, 0.0, '2001-01-01', '2001-02-01', 1, 2, NULL, NULL, 0, NULL, NULL, 2, NULL, NULL, NULL); \ No newline at end of file diff --git a/db/versions/11394-brownAsparagus/00-firstScript.sql b/db/versions/11394-brownAsparagus/00-firstScript.sql index 84d6001995..d02482efdd 100644 --- a/db/versions/11394-brownAsparagus/00-firstScript.sql +++ b/db/versions/11394-brownAsparagus/00-firstScript.sql @@ -1,4 +1,5 @@ INSERT INTO salix.ACL (model, property, accessType, permission, principalType, principalId) - VALUES('Vehicle', 'filter', 'READ', 'ALLOW', 'ROLE', 'delivery'), + VALUES ('Vehicle', 'filter', 'READ', 'ALLOW', 'ROLE', 'delivery'), ('Vehicle', 'updateAttributes', 'WRITE', 'ALLOW', 'ROLE', 'delivery'), + ('BankPolicy', 'find', 'READ', 'ALLOW', 'ROLE', 'delivery'), ('Vehicle', 'deleteById', 'WRITE', 'ALLOW', 'ROLE', 'deliveryBoss'); \ No newline at end of file diff --git a/modules/route/back/model-config.json b/modules/route/back/model-config.json index b951d2560a..42b71f5f1e 100644 --- a/modules/route/back/model-config.json +++ b/modules/route/back/model-config.json @@ -5,12 +5,18 @@ "AgencyTermConfig": { "dataSource": "vn" }, + "BankPolicy": { + "dataSource": "vn" + }, "Cmr": { "dataSource": "vn" }, "DeliveryPoint": { "dataSource": "vn" }, + "FuelType": { + "dataSource": "vn" + }, "RoadmapAddress": { "dataSource": "vn" }, diff --git a/modules/route/back/models/bank-policy.json b/modules/route/back/models/bank-policy.json new file mode 100644 index 0000000000..edbc636ffa --- /dev/null +++ b/modules/route/back/models/bank-policy.json @@ -0,0 +1,18 @@ +{ + "name": "BankPolicy", + "base": "VnModel", + "options": { + "mysql": { + "table": "bankPolicy" + } + }, + "properties": { + "id": { + "type": "number", + "id": true + }, + "ref": { + "type": "string" + } + } +} \ No newline at end of file diff --git a/modules/route/back/models/fuel-type.json b/modules/route/back/models/fuel-type.json new file mode 100644 index 0000000000..c7f96b3253 --- /dev/null +++ b/modules/route/back/models/fuel-type.json @@ -0,0 +1,30 @@ +{ + "name": "FuelType", + "base": "VnModel", + "options": { + "mysql": { + "table": "fuelType" + } + }, + "properties": { + "id": { + "type": "number", + "id": true, + "description": "Identifier" + }, + "name": { + "type": "string" + }, + "code": { + "type": "string" + } + }, + "acls": [ + { + "accessType": "READ", + "principalType": "ROLE", + "principalId": "employee", + "permission": "ALLOW" + } + ] +} \ No newline at end of file diff --git a/modules/route/back/models/vehicle.json b/modules/route/back/models/vehicle.json index 8419ee6840..c5b6eab5ba 100644 --- a/modules/route/back/models/vehicle.json +++ b/modules/route/back/models/vehicle.json @@ -41,6 +41,15 @@ }, "isKmTruckRate": { "type": "number" + }, + "fuelTypeFk": { + "type": "number" + }, + "import": { + "type": "number" + }, + "vin": { + "type": "string" } }, "relations": { @@ -64,6 +73,26 @@ "model": "VehicleEvent", "foreignKey": "vehicleFk", "property": "id" + }, + "supplier": { + "type": "belongsTo", + "model": "Supplier", + "foreignKey": "supplierFk" + }, + "supplierCooler": { + "type": "belongsTo", + "model": "Supplier", + "foreignKey": "supplierCoolerFk" + }, + "bankPolicy": { + "type": "belongsTo", + "model": "BankPolicy", + "foreignKey": "bankPolicyFk" + }, + "fuelType": { + "type": "belongsTo", + "model": "FuelType", + "foreignKey": "fuelTypeFk" } }, "scope": { From 921edb238cdb1eb700e46429f6ec3db3846c0d85 Mon Sep 17 00:00:00 2001 From: jorgep Date: Fri, 27 Dec 2024 16:55:59 +0100 Subject: [PATCH 046/149] feat: refs #7119 add Ppe model and establish relationships in Vehicle model --- db/dump/fixtures.before.sql | 49 ++++++++++++++------------ modules/route/back/model-config.json | 3 ++ modules/route/back/models/ppe.json | 23 ++++++++++++ modules/route/back/models/vehicle.json | 6 ++++ 4 files changed, 59 insertions(+), 22 deletions(-) create mode 100644 modules/route/back/models/ppe.json diff --git a/db/dump/fixtures.before.sql b/db/dump/fixtures.before.sql index b2d11999dd..d5562d0009 100644 --- a/db/dump/fixtures.before.sql +++ b/db/dump/fixtures.before.sql @@ -4051,31 +4051,36 @@ INSERT IGNORE INTO vn.inventoryConfig supplierFk = 4; INSERT INTO vn.vehicleState (state, hasToNotify) -VALUES - ('Operativo', NULL), - ('Prestado', NULL), - ('Robado', NULL), - ('Taller', NULL), - ('Targeta SOLRED', NULL), - ('Via T SOLRED', NULL), - ('ITV', NULL); + VALUES + ('Operativo', NULL), + ('Prestado', NULL), + ('Robado', NULL), + ('Taller', NULL), + ('Targeta SOLRED', NULL), + ('Via T SOLRED', NULL), + ('ITV', NULL); INSERT INTO vn.vehicleEvent (started, finished, vehicleStateFk, description, vehicleFk, userFk, notified) -VALUES - ('2000-12-01', '2000-12-02', 4, 'cambio de aceite', 5, 103, NULL), - ('2000-12-15', '2000-12-18', 2, 'viaje fin de curso', 5, 103, NULL), - ('2000-12-20', '2001-01-01', 3, 'llaves puestas', 2, 103, NULL); + VALUES + ('2000-12-01', '2000-12-02', 4, 'cambio de aceite', 5, 103, NULL), + ('2000-12-15', '2000-12-18', 2, 'viaje fin de curso', 5, 103, NULL), + ('2000-12-20', '2001-01-01', 3, 'llaves puestas', 2, 103, NULL); INSERT INTO vn.fuelType (id, name, code) -VALUES - (1, 'gasoil', 'gasoil'), - (2, 'gas', 'gas'), - (3, 'adblue', 'adblue'), - (4, 'gasolina', 'gasolina'), - (5, 'gasoil-frigo', 'gasoil-frigo'), - (6, 'electrico', 'electric'); + VALUES + (1, 'gasoil', 'gasoil'), + (2, 'gas', 'gas'), + (3, 'adblue', 'adblue'), + (4, 'gasolina', 'gasolina'), + (5, 'gasoil-frigo', 'gasoil-frigo'), + (6, 'electrico', 'electric'); INSERT INTO vn.bankPolicy (id, `ref`, amount, committedFee, nonCommittedFee, annualFee, started, ended, accountingFk, companyFk, supplierFk, description, hasGuarantee, dmsFk, notaryFk, currencyFk, amortizationTypeFk, periodicityTypeFk, insuranceExpired) -VALUES - (1, '11112222', 500000.0, 0.028, 0.0, 0.001, '2001-01-01', '2001-02-01', 1, 442, NULL, NULL, 0, NULL, NULL, 1, NULL, NULL, NULL), - (2, '33334444', 100000.0, 0.017, 0.0, 0.0, '2001-01-01', '2001-02-01', 1, 2, NULL, NULL, 0, NULL, NULL, 2, NULL, NULL, NULL); \ No newline at end of file + VALUES + (1, '11112222', 500000.0, 0.028, 0.0, 0.001, '2001-01-01', '2001-02-01', 1, 442, NULL, NULL, 0, NULL, NULL, 1, NULL, NULL, NULL), + (2, '33334444', 100000.0, 0.017, 0.0, 0.0, '2001-01-01', '2001-02-01', 1, 2, NULL, NULL, 0, NULL, NULL, 2, NULL, NULL, NULL); + +INSERT INTO vn.ppe (id, amortization, firstAmortizated, lastAmortizated, finished, value, planFk, groupFk, account, endowment, elementAccount, nature, location, discharged, cause, isInvestmentAsset, workerFk, companyFk, description, isDone) + VALUES + (1, 0.00, '2001-01-01', NULL, NULL, 700.95, 16, 4, '3456000000', '4320000000', '12345', 'INMOVILIZADO', 'V02', NULL, NULL, 0, NULL, 442, 'UTILLAJE LASER ROTATIVO AUTONIVELANTE 500M', NULL), + (2, 0.00, '2001-01-01', NULL, NULL, 400.00, 16, 4, '5678000000', '1230000000', '67891', 'INMOVILIZADO', 'V02', NULL, NULL, 0, NULL, 442, 'UTILLAJE BALANZA Z100 150KILOS', NULL); \ No newline at end of file diff --git a/modules/route/back/model-config.json b/modules/route/back/model-config.json index 42b71f5f1e..c8c67a361e 100644 --- a/modules/route/back/model-config.json +++ b/modules/route/back/model-config.json @@ -17,6 +17,9 @@ "FuelType": { "dataSource": "vn" }, + "Ppe": { + "dataSource": "vn" + }, "RoadmapAddress": { "dataSource": "vn" }, diff --git a/modules/route/back/models/ppe.json b/modules/route/back/models/ppe.json new file mode 100644 index 0000000000..7af5cb6844 --- /dev/null +++ b/modules/route/back/models/ppe.json @@ -0,0 +1,23 @@ +{ + "name": "Ppe", + "base": "VnModel", + "options": { + "mysql": { + "table": "ppe" + } + }, + "properties": { + "id": { + "type": "number", + "id": true + } + }, + "acls": [ + { + "accessType": "READ", + "principalType": "ROLE", + "principalId": "delivery", + "permission": "ALLOW" + } + ] +} \ No newline at end of file diff --git a/modules/route/back/models/vehicle.json b/modules/route/back/models/vehicle.json index c5b6eab5ba..dbf78f7d12 100644 --- a/modules/route/back/models/vehicle.json +++ b/modules/route/back/models/vehicle.json @@ -93,6 +93,12 @@ "type": "belongsTo", "model": "FuelType", "foreignKey": "fuelTypeFk" + }, + "ppe": { + "type": "hasOne", + "model": "Ppe", + "foreignKey": "id", + "property": "ppeFk" } }, "scope": { From 68e42206c8f2054084112505871e2596f5a1f345 Mon Sep 17 00:00:00 2001 From: jorgep Date: Mon, 30 Dec 2024 17:31:56 +0100 Subject: [PATCH 047/149] feat: refs #7119 enhance vehicle filter method with additional parameters and improve SQL query structure --- modules/route/back/methods/vehicle/filter.js | 133 +++++++++++-------- modules/route/back/models/vehicle.json | 3 + 2 files changed, 79 insertions(+), 57 deletions(-) diff --git a/modules/route/back/methods/vehicle/filter.js b/modules/route/back/methods/vehicle/filter.js index a6cec02940..bc2186e3a6 100644 --- a/modules/route/back/methods/vehicle/filter.js +++ b/modules/route/back/methods/vehicle/filter.js @@ -1,5 +1,8 @@ +const {ParameterizedSQL} = require('loopback-connector'); +const {buildFilter, mergeFilters} = require('vn-loopback/util/filter'); + module.exports = Self => { - Self.remoteMethod('filter', { + Self.remoteMethodCtx('filter', { description: 'Find all instances of the model matched by filter from the data source.', accessType: 'READ', accepts: [{ @@ -42,6 +45,9 @@ module.exports = Self => { }, { arg: 'isKmTruckRate', type: 'boolean' + }, { + arg: 'vehicleStateFk', + type: 'number' }], returns: { type: ['object'], @@ -53,66 +59,79 @@ module.exports = Self => { } }); - Self.filter = async(filter, search, id, description, companyFk, tradeMark, numberPlate, warehouseFk, chassis, leasing, countryCodeFk, isKmTruckRate, options) => { + Self.filter = async(ctx, filter, options) => { + const conn = Self.dataSource.connector; const myOptions = {}; - const myWhere = {}; - const {limit, order, skip, where} = filter; if (typeof options == 'object') Object.assign(myOptions, options); - if (search) myWhere.or = [{id: search}, {numberPlate: {like: `%${search}%`}}]; - if (id) myWhere.id = id; - if (description) myWhere.description = {like: `%${description}%`}; - if (companyFk) myWhere.companyFk = companyFk; - if (tradeMark) myWhere.tradeMark = {like: `%${tradeMark}%`}; - if (numberPlate) myWhere.numberPlate = {like: `%${numberPlate}%`}; - if (warehouseFk) myWhere.warehouseFk = warehouseFk; - if (chassis) myWhere.chassis = {like: `%${chassis}%`}; - if (leasing) myWhere.leasing = {like: `%${leasing}%`}; - if (countryCodeFk) myWhere.countryCodeFk = countryCodeFk; - if (isKmTruckRate) myWhere.isKmTruckRate = isKmTruckRate; - - Object.assign(where || {}, myWhere); - - const myFilter = { - fields: ['id', 'numberPlate', 'tradeMark', 'model', 'm3', 'description', 'isActive', 'warehouseFk', 'companyFk', 'countryCodeFk', 'chassis', 'leasing', 'isKmTruckRate'], - include: [ - { - relation: 'warehouse', - scope: { - fields: ['id', 'name'] - } - }, - { - relation: 'company', - scope: { - fields: ['id', 'code'] - } - }, - { - relation: 'event', - scope: { - fields: ['vehicleFk', 'vehicleStateFk'], - include: { - relation: 'state', - scope: { - fields: ['id', 'state'] - } - }, - order: ['started DESC'], - limit: 1 - } - }, - ], - where: myWhere, - order, - limit, - skip, - }; - - return Self.find(myFilter, myOptions).map(v => { - v.__data.event = v.event()[0]; - return v; + const where = buildFilter(ctx.args, (param, value) => { + switch (param) { + case 'search': + return {or: [{'v.id': value}, {numberPlate: {like: `%${value}%`}}]}; + case 'id': + return {id: value}; + case 'description': + return {description: {like: `%${value}%`}}; + case 'companyFk': + return {companyFk: value}; + case 'tradeMark': + return {tradeMark: {like: `%${value}%`}}; + case 'numberPlate': + return {numberPlate: {like: `%${value}%`}}; + case 'warehouseFk': + return {warehouseFk: value}; + case 'chassis': + return {chassis: {like: `%${value}%`}}; + case 'leasing': + return {leasing: {like: `%${value}%`}}; + case 'countryCodeFk': + return {countryCodeFk: value}; + case 'isKmTruckRate': + return {isKmTruckRate: value}; + case 'vehicleStateFk': + return {vehicleStateFk: value}; + } }); + + const myFilter = mergeFilters(filter, {where}); + + const stmt = new ParameterizedSQL(` + SELECT v.id, + v.numberPlate, + v.tradeMark, + v.model, + v.m3, + v.description, + v.isActive, + v.countryCodeFk, + v.chassis, + v.leasing, + v.isKmTruckRate, + w.name as warehouse, + c.code as company, + sub.state + FROM vehicle v + LEFT JOIN warehouse w ON w.id = v.warehouseFk + LEFT JOIN company c ON c.id = v.companyFk + LEFT JOIN ( + SELECT e.vehicleFk, + e.vehicleStateFk, + s.state, + ROW_NUMBER() OVER (PARTITION BY e.vehicleFk ORDER BY e.started DESC) as rn + FROM vehicleEvent e + LEFT JOIN vehicleState s ON e.vehicleStateFk = s.id + ) sub ON sub.vehicleFk = v.id AND sub.rn = 1 + ` + ); + + const sqlWhere = conn.makeWhere(myFilter.where); + stmt.merge(sqlWhere); + stmt.merge(conn.makePagination(myFilter)); + + const sql = ParameterizedSQL.join([stmt], ';'); + const result = await conn.executeStmt(sql, myOptions); + + return result; }; }; diff --git a/modules/route/back/models/vehicle.json b/modules/route/back/models/vehicle.json index dbf78f7d12..9269cdebbc 100644 --- a/modules/route/back/models/vehicle.json +++ b/modules/route/back/models/vehicle.json @@ -50,6 +50,9 @@ }, "vin": { "type": "string" + }, + "ppeFk": { + "type": "number" } }, "relations": { From bc495ed51e947e45072610e37ca2a6f18aedcca4 Mon Sep 17 00:00:00 2001 From: jorgep Date: Mon, 30 Dec 2024 17:55:27 +0100 Subject: [PATCH 048/149] feat: refs #7119 add VehicleNotes model and update vehicle filter SQL query --- modules/route/back/methods/vehicle/filter.js | 2 +- modules/route/back/model-config.json | 3 ++ modules/route/back/models/vehicle-notes.json | 35 ++++++++++++++++++++ 3 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 modules/route/back/models/vehicle-notes.json diff --git a/modules/route/back/methods/vehicle/filter.js b/modules/route/back/methods/vehicle/filter.js index bc2186e3a6..17c132c2c8 100644 --- a/modules/route/back/methods/vehicle/filter.js +++ b/modules/route/back/methods/vehicle/filter.js @@ -118,7 +118,7 @@ module.exports = Self => { SELECT e.vehicleFk, e.vehicleStateFk, s.state, - ROW_NUMBER() OVER (PARTITION BY e.vehicleFk ORDER BY e.started DESC) as rn + ROW_NUMBER() OVER (PARTITION BY e.vehicleFk ORDER BY e.started DESC) rn FROM vehicleEvent e LEFT JOIN vehicleState s ON e.vehicleStateFk = s.id ) sub ON sub.vehicleFk = v.id AND sub.rn = 1 diff --git a/modules/route/back/model-config.json b/modules/route/back/model-config.json index c8c67a361e..07054061fd 100644 --- a/modules/route/back/model-config.json +++ b/modules/route/back/model-config.json @@ -47,6 +47,9 @@ "VehicleEvent": { "dataSource": "vn" }, + "VehicleNotes": { + "dataSource": "vn" + }, "VehicleState": { "dataSource": "vn" }, diff --git a/modules/route/back/models/vehicle-notes.json b/modules/route/back/models/vehicle-notes.json new file mode 100644 index 0000000000..922f9b14b9 --- /dev/null +++ b/modules/route/back/models/vehicle-notes.json @@ -0,0 +1,35 @@ +{ + "name": "VehicleNotes", + "base": "VnModel", + "options": { + "mysql": { + "table": "vehicleNotes" + } + }, + "properties": { + "id": { + "type": "number", + "id": true + }, + "vehicleFk": { + "type": "number" + }, + "created": { + "type": "date" + }, + "note": { + "type": "string" + }, + "userFk": { + "type": "number" + } + }, + "acls": [ + { + "accessType": "READ", + "principalType": "ROLE", + "principalId": "delivery", + "permission": "ALLOW" + } + ] +} \ No newline at end of file From eca2ff84ef4f4f8f2b6d5129c32f84f97247f2f3 Mon Sep 17 00:00:00 2001 From: robert Date: Thu, 2 Jan 2025 07:49:49 +0100 Subject: [PATCH 049/149] feat: refs #6702 changes --- loopback/locale/es.json | 6 +++--- modules/ticket/back/methods/sale/updatePrice.js | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/loopback/locale/es.json b/loopback/locale/es.json index 9136d3d01d..eb5b9a90ad 100644 --- a/loopback/locale/es.json +++ b/loopback/locale/es.json @@ -123,7 +123,7 @@ "Added sale to ticket": "He añadido la siguiente linea al ticket [{{ticketId}}]({{{ticketUrl}}}): {{{addition}}}", "Changed sale discount": "He cambiado el descuento de las siguientes lineas al ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", "Created claim": "He creado la reclamación [{{claimId}}]({{{claimUrl}}}) de las siguientes lineas del ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", - "Changed sale price": "He cambiado el precio de [{{itemId}} {{concept}}]({{{itemUrl}}}) {{ticketWeekly}} ({{quantity}}) de {{oldPrice}}€ ➔ *{{newPrice}}€* del ticket [{{ticketId}}]({{{ticketUrl}}})", + "Changed sale price": "He cambiado el precio de [{{itemId}} {{concept}}]({{{itemUrl}}}) ({{quantity}}) de {{oldPrice}}€ ➔ *{{newPrice}}€* del ticket [{{ticketId}}]({{{ticketUrl}}}) {{ticketWeekly}} ", "Changed sale quantity": "He cambiado {{changes}} del ticket [{{ticketId}}]({{{ticketUrl}}})", "Changes in sales": "la cantidad de [{{itemId}} {{concept}}]({{{itemUrl}}}) de {{oldQuantity}} ➔ *{{newQuantity}}*", "State": "Estado", @@ -394,6 +394,6 @@ "Price cannot be blank": "Price cannot be blank", "An item type with the same code already exists": "Un tipo con el mismo código ya existe", "Holidays to past days not available": "Las vacaciones a días pasados no están disponibles", - "Is cloned": "Is cloned", - "Is cloned from": "Is cloned from" + "Is cloned from": "Is cloned from", + "Is cloned from ticket {{ticketWeekly}} de": "Is cloned from ticket {{ticketWeekly}} de" } diff --git a/modules/ticket/back/methods/sale/updatePrice.js b/modules/ticket/back/methods/sale/updatePrice.js index f1568380b4..0112432314 100644 --- a/modules/ticket/back/methods/sale/updatePrice.js +++ b/modules/ticket/back/methods/sale/updatePrice.js @@ -124,7 +124,7 @@ module.exports = Self => { newPrice: newPrice, ticketUrl: `${url}ticket/${sale.ticket().id}/sale`, itemUrl: `${url}item/${sale.itemFk}/summary`, - ticketWeekly: ticketWeekly ? `Is cloned from ticket ${ticketWeekly} de ` : null + ticketWeekly: ticketWeekly ? $t('Is cloned from ticket {{ticketWeekly}}', {ticketWeekly}) : null }); await models.Chat.sendCheckingPresence(ctx, salesPerson.id, message, myOptions); } From a139c9849c60484a9a9cfd28218b781f11229d48 Mon Sep 17 00:00:00 2001 From: carlossa Date: Tue, 7 Jan 2025 10:33:30 +0100 Subject: [PATCH 050/149] fix: refs #6553 fix model --- modules/worker/back/models/worker.json | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/modules/worker/back/models/worker.json b/modules/worker/back/models/worker.json index eb4f5e7966..d52b1f57bb 100644 --- a/modules/worker/back/models/worker.json +++ b/modules/worker/back/models/worker.json @@ -264,12 +264,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": { From 8f99b145100964de144469be2f820e8d723ebc5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Andr=C3=A9s?= Date: Thu, 9 Jan 2025 08:43:14 +0100 Subject: [PATCH 051/149] fix: refs #7965 UnifyProblems --- .../vn/procedures/sale_getProblems.sql | 43 +++++++++-------- .../vn/procedures/ticket_getProblems.sql | 48 +++++++++---------- 2 files changed, 46 insertions(+), 45 deletions(-) diff --git a/db/routines/vn/procedures/sale_getProblems.sql b/db/routines/vn/procedures/sale_getProblems.sql index ce6117ec5f..483cacb1ff 100644 --- a/db/routines/vn/procedures/sale_getProblems.sql +++ b/db/routines/vn/procedures/sale_getProblems.sql @@ -6,6 +6,7 @@ BEGIN /** * Calcula los problemas para un conjunto de sale * + * @param vIsTodayRelative Indica si se calcula el disponible como si todo saliera hoy * @table tmp.sale(saleFk) Identificadores de los sale a calcular * @return tmp.saleProblems */ @@ -45,7 +46,7 @@ BEGIN JOIN parking p ON p.id = sh.parkingFk JOIN sector s ON s.id = p.sectorFk GROUP BY ish.itemFk, s.warehouseFk; - + -- Disponible, faltas, inventario y retrasos OPEN vCursor; l: LOOP @@ -55,11 +56,11 @@ BEGIN IF vDone THEN LEAVE l; END IF; - + -- Disponible: no va a haber suficiente producto para preparar todos los pedidos CALL cache.available_refresh(vAvailableCache, FALSE, vWarehouseFk, vDate); - - -- Faltas: visible, disponible y ubicado son menores que la cantidad vendida + + -- Faltas: visible, disponible y ubicado son menores que la cantidad vendida CALL cache.visible_refresh(vVisibleCache, FALSE, vWarehouseFk); INSERT INTO tmp.saleProblems(saleFk, hasItemShortage) @@ -69,16 +70,16 @@ BEGIN JOIN ticket t ON t.id = s.ticketFk JOIN item i ON i.id = s.itemFk JOIN itemType it ON it.id = i.typeFk - JOIN itemCategory ic ON ic.id = it.categoryFk + JOIN itemCategory ic ON ic.id = it.categoryFk LEFT JOIN cache.visible v ON v.item_id = i.id AND v.calc_id = vVisibleCache LEFT JOIN cache.available av ON av.item_id = i.id AND av.calc_id = vAvailableCache LEFT JOIN tItemShelving tis ON tis.itemFk = i.id - AND tis.warehouseFk = t.warehouseFk - WHERE IFNULL(v.visible, 0) < s.quantity - AND IFNULL(av.available, 0) < s.quantity - AND IFNULL(tis.visible, 0) < s.quantity + AND tis.warehouseFk = t.warehouseFk + WHERE (v.visible < s.quantity AND v.visible IS NOT NULL) + AND (av.available < s.quantity AND av.available IS NOT NULL) + AND (tis.visible < s.quantity AND tis.visible IS NOT NULL) AND NOT s.isPicked AND NOT s.reserved AND ic.merchandise @@ -87,7 +88,7 @@ BEGIN AND util.VN_CURDATE() = vDate AND t.warehouseFk = vWarehouseFk GROUP BY s.id; - + -- Inventario: Visible suficiente, pero ubicado menor a la cantidad vendida INSERT INTO tmp.saleProblems(saleFk, hasItemLost) SELECT s.id, TRUE @@ -100,9 +101,9 @@ BEGIN LEFT JOIN cache.visible v ON v.item_id = s.itemFk AND v.calc_id = vVisibleCache LEFT JOIN tItemShelving tis ON tis.itemFk = i.id - AND tis.warehouseFk = t.warehouseFk - WHERE IFNULL(v.visible, 0) >= s.quantity - AND IFNULL(tis.visible, 0) < s.quantity + AND tis.warehouseFk = t.warehouseFk + WHERE (v.visible >= s.quantity AND v.visible IS NOT NULL) + AND (tis.visible < s.quantity AND tis.visible IS NOT NULL) AND s.quantity > 0 AND NOT s.isPicked AND NOT s.reserved @@ -116,7 +117,7 @@ BEGIN -- Retraso: Disponible suficiente, pero no visible ni ubicado INSERT INTO tmp.saleProblems(saleFk, hasItemDelay) - SELECT s.id, TRUE + SELECT s.id, TRUE FROM tmp.sale ts JOIN sale s ON s.id = ts.saleFk JOIN ticket t ON t.id = s.ticketFk @@ -128,10 +129,10 @@ BEGIN LEFT JOIN cache.available av ON av.item_id = i.id AND av.calc_id = vAvailableCache LEFT JOIN tItemShelving tis ON tis.itemFk = i.id - AND tis.warehouseFk = t.warehouseFk - WHERE IFNULL(v.visible, 0) < s.quantity - AND IFNULL(av.available, 0) >= s.quantity - AND IFNULL(tis.visible, 0) < s.quantity + AND tis.warehouseFk = t.warehouseFk + WHERE (v.visible < s.quantity AND v.visible IS NOT NULL) + AND (av.available < s.quantity AND av.available IS NOT NULL) + AND (tis.visible < s.quantity AND tis.visible IS NOT NULL) AND s.quantity > 0 AND NOT s.isPicked AND NOT s.reserved @@ -141,9 +142,9 @@ BEGIN AND util.VN_CURDATE() = vDate AND t.warehouseFk = vWarehouseFk GROUP BY s.id - ON DUPLICATE KEY UPDATE hasItemDelay = TRUE; + ON DUPLICATE KEY UPDATE hasItemDelay = TRUE; - -- Redondeo: cantidad incorrecta con respecto al grouping + -- Redondeo: cantidad incorrecta con respecto al grouping CALL buy_getUltimate(NULL, vWarehouseFk, vDate); INSERT INTO tmp.saleProblems(saleFk, hasRounding) @@ -155,7 +156,7 @@ BEGIN JOIN item i ON i.id = s.itemFk JOIN tmp.buyUltimate bu ON bu.itemFk = s.itemFk JOIN buy b ON b.id = bu.buyFk - WHERE MOD(s.quantity, b.`grouping`) + WHERE MOD(s.quantity, b.`grouping`) GROUP BY s.id ON DUPLICATE KEY UPDATE hasRounding = TRUE; diff --git a/db/routines/vn/procedures/ticket_getProblems.sql b/db/routines/vn/procedures/ticket_getProblems.sql index fe77ed57bd..1094a9d491 100644 --- a/db/routines/vn/procedures/ticket_getProblems.sql +++ b/db/routines/vn/procedures/ticket_getProblems.sql @@ -6,6 +6,7 @@ BEGIN /** * Calcula los problemas para un conjunto de tickets. * + * @param vIsTodayRelative Indica si se calcula el disponible como si todo saliera hoy * @table tmp.ticket(ticketFk) Identificadores de los tickets a calcular * @return tmp.ticketProblems, tmp.saleProblems */ @@ -13,14 +14,14 @@ BEGIN saleFk INT(11), PRIMARY KEY (saleFk) ) ENGINE = MEMORY - SELECT DISTINCT s.id saleFk + SELECT DISTINCT s.id saleFk FROM tmp.ticket tt - JOIN ticket t ON t.id = tt.ticketFk + JOIN ticket t ON t.id = tt.ticketFk JOIN sale s ON s.ticketFk = t.id WHERE t.shipped BETWEEN util.VN_CURDATE() AND util.dayEnd(util.VN_CURDATE() + INTERVAL IF(vIsTodayRelative, 9.9, 1.9) DAY) GROUP BY s.id; - + CALL sale_getProblems(vIsTodayRelative); CREATE OR REPLACE TEMPORARY TABLE tmp.ticketProblems ( @@ -57,7 +58,7 @@ BEGIN FROM tmp.saleProblems sp JOIN vn.sale s ON s.id = sp.saleFk WHERE sp.hasRounding - GROUP BY s.ticketFk + GROUP BY s.ticketFk ), hasItemDelay AS( SELECT s.ticketFk FROM tmp.saleProblems sp @@ -71,23 +72,22 @@ BEGIN WHERE FIND_IN_SET('hasComponentLack', s.problem) GROUP BY s.ticketFk )SELECT tt.ticketFk, - IF(FIND_IN_SET('isFreezed', t.problem), TRUE, FALSE) isFreezed, + FIND_IN_SET('isFreezed', t.problem) isFreezed, t.risk, - IF(FIND_IN_SET('hasRisk', t.problem), TRUE, FALSE) hasRisk, - IF(FIND_IN_SET('hasHighRisk', t.problem), TRUE, FALSE) hasHighRisk, - IF(FIND_IN_SET('hasTicketRequest', t.problem), TRUE, FALSE) hasTicketRequest, - IF(FIND_IN_SET('isTaxDataChecked', t.problem), TRUE, FALSE) isTaxDataChecked, - IF(FIND_IN_SET('isTooLittle', t.problem) - AND util.VN_NOW() < (util.VN_CURDATE() + - INTERVAL HOUR(zc.`hour`) HOUR) + - INTERVAL MINUTE(zc.`hour`) MINUTE, - TRUE, FALSE) isTooLittle, - IF(c.businessTypeFk = 'VIP', TRUE, FALSE) isVip, - IF(his.ticketFk IS NULL, FALSE, TRUE) hasItemShortage, - IF(hid.ticketFk IS NULL, FALSE, TRUE) hasItemDelay, - IF(hil.ticketFk IS NULL, FALSE, TRUE) hasItemLost, - IF(hcl.ticketFk IS NULL, FALSE, TRUE) hasComponentLack, - IF(hr.ticketFk IS NULL, FALSE, TRUE) hasRounding, + FIND_IN_SET('hasRisk', t.problem) hasRisk, + FIND_IN_SET('hasHighRisk', t.problem) hasHighRisk, + FIND_IN_SET('hasTicketRequest', t.problem) hasTicketRequest, + FIND_IN_SET('isTaxDataChecked', t.problem) isTaxDataChecked, + FIND_IN_SET('isTooLittle', t.problem) + AND util.VN_NOW() < (util.VN_CURDATE() + + INTERVAL HOUR(zc.`hour`) HOUR) + + INTERVAL MINUTE(zc.`hour`) MINUTE isTooLittle, + c.businessTypeFk = 'VIP' isVip, + NOT (his.ticketFk IS NULL) hasItemShortage, + NOT (hid.ticketFk IS NULL) hasItemDelay, + NOT (hil.ticketFk IS NULL) hasItemLost, + NOT (hcl.ticketFk IS NULL) hasComponentLack, + NOT (hr.ticketFk IS NULL) hasRounding, 0 totalProblems FROM tmp.ticket tt JOIN vn.ticket t ON t.id = tt.ticketFk @@ -100,12 +100,12 @@ BEGIN LEFT JOIN vn.zoneClosure zc ON zc.zoneFk = t.zoneFk AND zc.dated = util.VN_CURDATE() GROUP BY t.id; - + UPDATE tmp.ticketProblems - SET totalProblems = isFreezed + hasHighRisk + hasTicketRequest + - isTaxDataChecked + hasComponentLack + hasItemDelay + + SET totalProblems = isFreezed + hasHighRisk + hasTicketRequest + + isTaxDataChecked + hasComponentLack + hasItemDelay + isTooLittle + hasItemLost + hasRounding + hasItemShortage + isVip; - + DROP TEMPORARY TABLE tmp.sale; END$$ DELIMITER ; From 638a8e344dbd8843be3db6ea842b2b70d552c506 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Andr=C3=A9s?= Date: Thu, 9 Jan 2025 10:34:49 +0100 Subject: [PATCH 052/149] fix: refs #7965 UnifyProblems --- db/routines/vn/procedures/sale_getProblems.sql | 10 ++++++++++ db/routines/vn/procedures/ticket_getProblems.sql | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/db/routines/vn/procedures/sale_getProblems.sql b/db/routines/vn/procedures/sale_getProblems.sql index 483cacb1ff..7f7050897e 100644 --- a/db/routines/vn/procedures/sale_getProblems.sql +++ b/db/routines/vn/procedures/sale_getProblems.sql @@ -30,6 +30,7 @@ BEGIN saleFk INT(11), hasItemShortage BOOL DEFAULT FALSE, hasItemLost BOOL DEFAULT FALSE, + hasComponentLack BOOL DEFAULT FALSE, hasItemDelay BOOL DEFAULT FALSE, hasRounding BOOL DEFAULT FALSE, PRIMARY KEY (saleFk) @@ -115,6 +116,15 @@ BEGIN GROUP BY s.id ON DUPLICATE KEY UPDATE hasItemLost = TRUE; + -- Componentes: Algún componente obligatorio no se ha calcualdo + INSERT INTO tmp.saleProblems(saleFk, hasComponentLack) + SELECT s.id, TRUE + FROM tmp.sale ts + JOIN sale s ON s.id = ts.saleFk + WHERE FIND_IN_SET('hasComponentLack', s.problem) + GROUP BY s.id + ON DUPLICATE KEY UPDATE hasComponentLack = TRUE; + -- Retraso: Disponible suficiente, pero no visible ni ubicado INSERT INTO tmp.saleProblems(saleFk, hasItemDelay) SELECT s.id, TRUE diff --git a/db/routines/vn/procedures/ticket_getProblems.sql b/db/routines/vn/procedures/ticket_getProblems.sql index 1094a9d491..744db46410 100644 --- a/db/routines/vn/procedures/ticket_getProblems.sql +++ b/db/routines/vn/procedures/ticket_getProblems.sql @@ -69,7 +69,7 @@ BEGIN SELECT s.ticketFk FROM tmp.saleProblems sp JOIN vn.sale s ON s.id = sp.saleFk - WHERE FIND_IN_SET('hasComponentLack', s.problem) + WHERE sp.hasComponentLack GROUP BY s.ticketFk )SELECT tt.ticketFk, FIND_IN_SET('isFreezed', t.problem) isFreezed, From 09b4b2cf1b29d3b31390608cba4aea7ccabe1fac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Andr=C3=A9s?= Date: Thu, 9 Jan 2025 11:52:30 +0100 Subject: [PATCH 053/149] fix: refs #7965 UnifyProblems --- db/routines/vn/procedures/ticket_getProblems.sql | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/db/routines/vn/procedures/ticket_getProblems.sql b/db/routines/vn/procedures/ticket_getProblems.sql index 744db46410..4144570f74 100644 --- a/db/routines/vn/procedures/ticket_getProblems.sql +++ b/db/routines/vn/procedures/ticket_getProblems.sql @@ -72,13 +72,13 @@ BEGIN WHERE sp.hasComponentLack GROUP BY s.ticketFk )SELECT tt.ticketFk, - FIND_IN_SET('isFreezed', t.problem) isFreezed, + FIND_IN_SET('isFreezed', t.problem) > 0 isFreezed, t.risk, - FIND_IN_SET('hasRisk', t.problem) hasRisk, - FIND_IN_SET('hasHighRisk', t.problem) hasHighRisk, - FIND_IN_SET('hasTicketRequest', t.problem) hasTicketRequest, - FIND_IN_SET('isTaxDataChecked', t.problem) isTaxDataChecked, - FIND_IN_SET('isTooLittle', t.problem) + FIND_IN_SET('hasRisk', t.problem) > 0 hasRisk, + FIND_IN_SET('hasHighRisk', t.problem) > 0 hasHighRisk, + FIND_IN_SET('hasTicketRequest', t.problem) > 0 hasTicketRequest, + FIND_IN_SET('isTaxDataChecked', t.problem) > 0 isTaxDataChecked, + FIND_IN_SET('isTooLittle', t.problem) > 0 AND util.VN_NOW() < (util.VN_CURDATE() + INTERVAL HOUR(zc.`hour`) HOUR) + INTERVAL MINUTE(zc.`hour`) MINUTE isTooLittle, From 2d8bda2b56af541102a30453eed9ead691b4af12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Andr=C3=A9s?= Date: Thu, 9 Jan 2025 15:46:04 +0100 Subject: [PATCH 054/149] fix: refs #7965 UnifyProblems --- .../vn/procedures/sale_getProblems.sql | 36 +++++++++---------- .../vn/procedures/ticket_getProblems.sql | 2 -- 2 files changed, 18 insertions(+), 20 deletions(-) diff --git a/db/routines/vn/procedures/sale_getProblems.sql b/db/routines/vn/procedures/sale_getProblems.sql index 7f7050897e..ca81660b8d 100644 --- a/db/routines/vn/procedures/sale_getProblems.sql +++ b/db/routines/vn/procedures/sale_getProblems.sql @@ -48,6 +48,14 @@ BEGIN JOIN sector s ON s.id = p.sectorFk GROUP BY ish.itemFk, s.warehouseFk; + -- Componentes: Algún componente obligatorio no se ha calcualdo + INSERT INTO tmp.saleProblems(saleFk, hasComponentLack) + SELECT s.id, TRUE + FROM tmp.sale ts + JOIN sale s ON s.id = ts.saleFk + WHERE FIND_IN_SET('hasComponentLack', s.problem) + GROUP BY s.id; + -- Disponible, faltas, inventario y retrasos OPEN vCursor; l: LOOP @@ -78,9 +86,9 @@ BEGIN AND av.calc_id = vAvailableCache LEFT JOIN tItemShelving tis ON tis.itemFk = i.id AND tis.warehouseFk = t.warehouseFk - WHERE (v.visible < s.quantity AND v.visible IS NOT NULL) - AND (av.available < s.quantity AND av.available IS NOT NULL) - AND (tis.visible < s.quantity AND tis.visible IS NOT NULL) + WHERE (s.quantity > v.visible OR (s.quantity > 0 AND v.visible IS NULL)) + AND (av.available < 0 OR av.available IS NULL) + AND (s.quantity > tis.visible OR tis.visible IS NULL) AND NOT s.isPicked AND NOT s.reserved AND ic.merchandise @@ -88,7 +96,8 @@ BEGIN AND NOT i.generic AND util.VN_CURDATE() = vDate AND t.warehouseFk = vWarehouseFk - GROUP BY s.id; + GROUP BY s.id + ON DUPLICATE KEY UPDATE hasItemShortage = TRUE; -- Inventario: Visible suficiente, pero ubicado menor a la cantidad vendida INSERT INTO tmp.saleProblems(saleFk, hasItemLost) @@ -103,8 +112,8 @@ BEGIN AND v.calc_id = vVisibleCache LEFT JOIN tItemShelving tis ON tis.itemFk = i.id AND tis.warehouseFk = t.warehouseFk - WHERE (v.visible >= s.quantity AND v.visible IS NOT NULL) - AND (tis.visible < s.quantity AND tis.visible IS NOT NULL) + WHERE (v.visible >= s.quantity OR v.visible IS NULL) + AND (s.quantity > tis.visible AND tis.visible IS NOT NULL) AND s.quantity > 0 AND NOT s.isPicked AND NOT s.reserved @@ -116,15 +125,6 @@ BEGIN GROUP BY s.id ON DUPLICATE KEY UPDATE hasItemLost = TRUE; - -- Componentes: Algún componente obligatorio no se ha calcualdo - INSERT INTO tmp.saleProblems(saleFk, hasComponentLack) - SELECT s.id, TRUE - FROM tmp.sale ts - JOIN sale s ON s.id = ts.saleFk - WHERE FIND_IN_SET('hasComponentLack', s.problem) - GROUP BY s.id - ON DUPLICATE KEY UPDATE hasComponentLack = TRUE; - -- Retraso: Disponible suficiente, pero no visible ni ubicado INSERT INTO tmp.saleProblems(saleFk, hasItemDelay) SELECT s.id, TRUE @@ -140,9 +140,9 @@ BEGIN AND av.calc_id = vAvailableCache LEFT JOIN tItemShelving tis ON tis.itemFk = i.id AND tis.warehouseFk = t.warehouseFk - WHERE (v.visible < s.quantity AND v.visible IS NOT NULL) - AND (av.available < s.quantity AND av.available IS NOT NULL) - AND (tis.visible < s.quantity AND tis.visible IS NOT NULL) + WHERE (s.quantity > v.visible AND v.visible IS NULL) + AND (av.available >= 0 OR av.available IS NULL) + AND (s.quantity > tis.visible AND tis.visible IS NOT NULL) AND s.quantity > 0 AND NOT s.isPicked AND NOT s.reserved diff --git a/db/routines/vn/procedures/ticket_getProblems.sql b/db/routines/vn/procedures/ticket_getProblems.sql index 4144570f74..a65413f5f8 100644 --- a/db/routines/vn/procedures/ticket_getProblems.sql +++ b/db/routines/vn/procedures/ticket_getProblems.sql @@ -18,8 +18,6 @@ BEGIN FROM tmp.ticket tt JOIN ticket t ON t.id = tt.ticketFk JOIN sale s ON s.ticketFk = t.id - WHERE t.shipped BETWEEN util.VN_CURDATE() - AND util.dayEnd(util.VN_CURDATE() + INTERVAL IF(vIsTodayRelative, 9.9, 1.9) DAY) GROUP BY s.id; CALL sale_getProblems(vIsTodayRelative); From a167e7fada35749dbdf28bcd2b6f7076b9c9e079 Mon Sep 17 00:00:00 2001 From: jtubau Date: Fri, 10 Jan 2025 13:42:29 +0100 Subject: [PATCH 055/149] feat: refs #8304 add ACL entry for WorkerDms with high privileges --- db/versions/11404-azureAnthurium/00-firstScript.sql | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 db/versions/11404-azureAnthurium/00-firstScript.sql diff --git a/db/versions/11404-azureAnthurium/00-firstScript.sql b/db/versions/11404-azureAnthurium/00-firstScript.sql new file mode 100644 index 0000000000..7a4dfe9bcb --- /dev/null +++ b/db/versions/11404-azureAnthurium/00-firstScript.sql @@ -0,0 +1,2 @@ +INSERT INTO salix.ACL (model, property, accessType, permission, principalType, principalId) +VALUES('WorkerDms', 'hasHighPrivs', 'READ', 'ALLOW', 'ROLE', 'hr'); \ No newline at end of file From 0e8d9137edfdcffebf73f84672c1d58ccd3a10a5 Mon Sep 17 00:00:00 2001 From: jtubau Date: Fri, 10 Jan 2025 13:48:03 +0100 Subject: [PATCH 056/149] feat: refs #8304 add privilege check for WorkerDms filter method --- modules/worker/back/methods/worker-dms/filter.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/modules/worker/back/methods/worker-dms/filter.js b/modules/worker/back/methods/worker-dms/filter.js index 240a905d28..a6e5d67e76 100644 --- a/modules/worker/back/methods/worker-dms/filter.js +++ b/modules/worker/back/methods/worker-dms/filter.js @@ -1,5 +1,6 @@ const ParameterizedSQL = require('loopback-connector').ParameterizedSQL; const {mergeFilters, mergeWhere} = require('vn-loopback/util/filter'); +const UserError = require('vn-loopback/util/user-error'); module.exports = Self => { Self.remoteMethodCtx('filter', { @@ -33,7 +34,10 @@ module.exports = Self => { const conn = Self.dataSource.connector; const userId = ctx.req.accessToken.userId; const models = Self.app.models; + const hasPrivs = await models.ACL.checkAccessAcl(ctx, 'WorkerDms', 'hasHighPrivs', '*'); + if (!hasPrivs && userId !== id) + throw new UserError('You don\'t have enough privileges'); // Get ids alloweds const account = await models.VnUser.findById(userId); From 358f93c454e6a2db65c0ef7731374584b94f8148 Mon Sep 17 00:00:00 2001 From: carlossa Date: Mon, 13 Jan 2025 12:23:21 +0100 Subject: [PATCH 057/149] fix: refs #6553 fix worker back --- modules/worker/back/models/worker.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/modules/worker/back/models/worker.json b/modules/worker/back/models/worker.json index d52b1f57bb..80d0f1a716 100644 --- a/modules/worker/back/models/worker.json +++ b/modules/worker/back/models/worker.json @@ -75,6 +75,9 @@ }, "isSsDiscounted": { "type": "boolean" + }, + "businessFk": { + "type": "number" } }, "relations": { From 420bb2a57ed8113309bb2931c35ccd729dae9692 Mon Sep 17 00:00:00 2001 From: Javier Segarra Date: Mon, 13 Jan 2025 12:41:16 +0100 Subject: [PATCH 058/149] perf: refs #7134 remove unnecessary code --- modules/client/back/models/till.js | 6 - modules/client/back/models/tillIn.js | 9 - modules/client/back/models/tillOut.js | 9 - modules/client/back/models/tiller.js | 6 - .../back/methods/supplier/createPayment.js | 297 ------------------ 5 files changed, 327 deletions(-) delete mode 100644 modules/client/back/models/till.js delete mode 100644 modules/client/back/models/tillIn.js delete mode 100644 modules/client/back/models/tillOut.js delete mode 100644 modules/client/back/models/tiller.js delete mode 100644 modules/supplier/back/methods/supplier/createPayment.js diff --git a/modules/client/back/models/till.js b/modules/client/back/models/till.js deleted file mode 100644 index 0ce8f96069..0000000000 --- a/modules/client/back/models/till.js +++ /dev/null @@ -1,6 +0,0 @@ - -module.exports = Self => { - require('./tillIn')(Self); - require('./tillOut')(Self); - require('./tiller')(Self); -}; diff --git a/modules/client/back/models/tillIn.js b/modules/client/back/models/tillIn.js deleted file mode 100644 index 112741422b..0000000000 --- a/modules/client/back/models/tillIn.js +++ /dev/null @@ -1,9 +0,0 @@ - -module.exports = Self => { - Self.tillIn = async(ctx, options) => { - const query = `INSERT INTO vn.promissoryNote ( concept, paymentFk) VALUES(?, ? )`; - const pagareId = await Self.rawSql(query, [concept, paymentFk], myOptions); - if (pagareId) return pagareId; - throw new UserError('Till In'); - }; -}; diff --git a/modules/client/back/models/tillOut.js b/modules/client/back/models/tillOut.js deleted file mode 100644 index 005607c9a8..0000000000 --- a/modules/client/back/models/tillOut.js +++ /dev/null @@ -1,9 +0,0 @@ - -module.exports = Self => { - Self.tillOut = async(ctx, options) => { - const query = `INSERT INTO vn.promissoryNote ( id, dated, serie, concept, in, out, bankFk, companyFk, isAccountable, InForeignValue, OutForeignValue, workerFk, calculatedCode, number, isLinked, created, isOk, warehouseFk, isConciliate, supplierAccountFk) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )`; - const pagareId = await Self.rawSql(query, [concept, paymentFk], myOptions); - if (pagareId) return pagareId; - throw new UserError('Till Out'); - }; -}; diff --git a/modules/client/back/models/tiller.js b/modules/client/back/models/tiller.js deleted file mode 100644 index d40e24039c..0000000000 --- a/modules/client/back/models/tiller.js +++ /dev/null @@ -1,6 +0,0 @@ - -module.exports = Self => { - Self.tiller = async(ctx, options) => { - throw new UserError('Till In'); - }; -}; diff --git a/modules/supplier/back/methods/supplier/createPayment.js b/modules/supplier/back/methods/supplier/createPayment.js deleted file mode 100644 index 9dce4d9276..0000000000 --- a/modules/supplier/back/methods/supplier/createPayment.js +++ /dev/null @@ -1,297 +0,0 @@ -// const UserError = require('vn-loopback/util/user-error'); -// Insert payment - -// divisa = solo en caso que la moneda sea distinta a €, -module.exports = function(Self) { - Self.remoteMethodCtx('createPayment', { - description: 'Creates receipt and its compensation if necessary', - accessType: 'READ', - accepts: [ - { - arg: 'received', - type: 'Date', - required: true - }, - { - arg: 'dueDate', - type: 'Date', - required: true - }, - { - arg: 'supplierFk', - type: 'number', - description: 'The supplier id', - http: {source: 'path'} - }, - { - arg: 'amount', - type: 'number', - required: true - }, - { - arg: 'currencyFk', - type: 'number', - required: true - }, { - arg: 'divisa', - type: 'any', - }, - { - arg: 'bankFk', - type: 'number', - required: true - }, - { - arg: 'payMethodFk', - type: 'number', - required: true - }, - { - arg: 'bankingFees', - type: 'number', - required: true - }, - - { - arg: 'concept', - type: 'string', - required: true - }, { - arg: 'companyFk', - type: 'number', - required: true - }, - - { - arg: 'isConciliated', - type: 'boolean' - }, - { - arg: 'compensationAccount', - type: 'any' - } - ], - returns: { - root: true, - type: 'Object' - }, - http: { - verb: 'post', - path: '/:supplierFk/createPayment' - }, - accessScopes: ['DEFAULT', 'read:multimedia'] - }); - - Self.createPayment = async(ctx, options) => { - const models = Self.app.models; - const args = ctx.args; - const date = Date.vnNew(); - date.setHours(0, 0, 0, 0); - - let tx; - const myOptions = {userId: ctx.req.accessToken.userId}; - - if (typeof options == 'object') - Object.assign(myOptions, options); - - if (!myOptions.transaction) { - tx = await Self.beginTransaction({}); - myOptions.transaction = tx; - } - - try { - delete args.ctx; // Remove unwanted properties - - // const originalSupplier = await models.Supplier.findById(args.supplierFk, null, myOptions); - // const bank = await models.Accounting.findById(args.bankFk, null, myOptions); - // const accountingType = await models.AccountingType.findById(bank.accountingTypeFk, null, myOptions); - - /* if (accountingType.code == 'compensation') { - if (!args.compensationAccount) - throw new UserError('Compensation account is empty'); - - // Check compensation account exists - await models.Supplier.getClientOrSupplierReference(args.compensationAccount, myOptions); - - await Self.rawSql( - `CALL vn.ledger_doCompensation(?, ?, ?, ?, ?, ?, ?)`, - [ - date, - args.compensationAccount, - args.bankFk, - accountingType.receiptDescription + originalSupplier.accountingAccount, - args.amountPaid, - args.companyFk, - originalSupplier.accountingAccount - ], - myOptions - ); - } else if (accountingType.isAutoConciliated == true) { - const description = - `${originalSupplier.id} : ${originalSupplier.socialName} - ${accountingType.receiptDescription}`; - const [, [xdiarioNew]] = await Self.rawSql( - `CALL xdiario_new(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, @xdiarioNew); - SELECT @xdiarioNew ledger;`, - [ - null, - date, - bank.account, - originalSupplier.accountingAccount, - description, - args.amountPaid, - 0, - 0, - '', - '', - null, - null, - false, - args.companyFk - ], - myOptions - ); - - await Self.rawSql( - `CALL xdiario_new(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, @xdiarioNew);`, - [ - xdiarioNew.ledger, - date, - originalSupplier.accountingAccount, - bank.account, - description, - 0, - args.amountPaid, - 0, - '', - '', - null, - null, - false, - args.companyFk - ], - myOptions - ); - } - */ - const bodyPayment = { - ...args, - dueDate: args.received, - }; - const newPayment = await models.Payment.create(bodyPayment, myOptions); - // if (/* Supplier is client*/ false) { - // const newReceipt = await models.Receipt.create({ - // invoiceFk: newPayment.id, - // amountPaid: args.amount, - // payed: args.received, - // bankFk: args.bankFk, - // companyFk: args.companyFk, - // clientFk: args.supplierFk, - // }, myOptions); - // } - // const supplier = await Self.app.models.Supplier.findById(args.supplierFk, {fields: ['nif'], include: { - // relation: 'client' - // }}, myOptions); - // const client = await Self.app.models.Client.findOne({where: {nif: supplier.fi}}, myOptions); - - if (tx) await tx.commit(); - - switch (bodyPayment.payMethodFk) { - case 1: - case 10: - case 20: - await models.Till.tillIn(args, myOptions); - throw new UserError('Metálico'); - // Call Salidadecaja( - // strCONCEPTO & " : " & DFirst("[Proveedor]", "Proveedores", - // " [Id_Proveedor] = " & vSupplierFk), - // "R", - // _ "0", - // _ Replace(str(Me.n_pago), ",", "."), _ - // Me.n_fecha, _ - // DFirst("[oficial]", "Proveedores", "[Id_Proveedor] =" & vSupplierFk), - // _ Me.n_caja, Me.empresa) - - // Call sql(msql("UPDATE pago SET conciliado = TRUE WHERE id = %", pagoId), False, True) - // Public Function Salidadecaja(strCONCEPTE As String, strSERIE As String, strREF As String, strSALIDA As String, _ - // datfecha As Date, strCOLOR As String, strCAJA As String, intEmp As Integer) - - // Select Case Trim(strCAJA) - - // Case "11", "12", "13" - - // Call abrecajon - - // End Select - - // Call sql(msql("INSERT INTO Cajas ( Concepto, Serie, Numero, Salida, Cajafecha, Partida, Id_Banco, Id_Trabajador,empresa_id ) " & _ - // "SELECT %,%,%,%,%,%,%,%,%", strCONCEPTE, strSERIE, Nz(strREF, 0), strSALIDA, datfecha, strCOLOR, strCAJA, workerId, intEmp), _ - // False, True) - - // End Function - // break; - case 2: - // Call emitir_pagare(pagoId, strCONCEPTO) - await emitPagare(args.concept, newPayment.id); - - // Public Function emitir_pagare(pagoId As Long, strCONCEPTO As String) - // Call sql(msql("INSERT INTO Pagares(pago_id,Concepto) " & _ - // "VALUES (%,%)", pagoId, strCONCEPTO), False, True) - - // Call sql("SELECT LAST_INSERT_ID() as id", True, False) - - // Call sql("SELECT Pagares.Id_Pagare, Pagares.Concepto, Proveedores.Proveedor, Proveedores.Domicilio,empresa.logo, " & _ - // "Proveedores.codpos, Proveedores.Localidad, [importe] AS texto, Pagares.Fechaemision, pago.importe,pago.fecha, " & _ - // "pago.empresa_id, Proveedores.postcode_id AS CP FROM ((Proveedores INNER JOIN pago ON Proveedores.Id_Proveedor = pago.id_proveedor) " & _ - // "INNER JOIN Pagares ON pago.id = Pagares.pago_id) INNER JOIN empresa ON pago.empresa_id = empresa.id " & _ - // "WHERE Pagares.Id_Pagare = " & DFirst("[id]", "cstSQL"), True, False, "pagareultimo") - // DoCmd.openReport "Pagare", acViewPreview - // End Function - // break; - case 3: - throw new UserError('Compensación'); - // Dim vOriginalAccount As String - // vOriginalAccount = db.getValueV("SELECT account FROM vn.supplier WHERE id = #", vSupplierFk) - // 'Call compensar(Me.n_caja, Me.n_fecha, strCONCEPTO, Me.empresa, Me.n_pago, vOriginalAccount, pagoId) - // db.execV "CALL vn.ledger_doCompensation(#, #, #, #, #, #, #)", Me.n_fecha, vCompensationAccount, Me.n_caja, strCONCEPTO, Me.n_pago, Me.empresa, vOriginalAccount - // db.execV "UPDATE pago SET conciliado = TRUE, concepte = CONCAT(concepte, ' ', #) WHERE id = #", vCompensationAccount, pagoId - // break; - case 8: - throw new UserError('SEPA-CORE/B2B'); - - // If db.getValueFromDefV("paymentHasIban", vSupplierFk) = 0 Then - // MsgBox "Rellene los campos iban y entidad.", vbCritical - // Exit Sub - // End If - // Dim isUeeMember As Boolean - // isUeeMember = db.getValueV("SELECT c.isUeeMember FROM vn.supplier s JOIN vn.country c ON c.id = s.countryFk WHERE s.id = #", vSupplierFk) - - // Call GenerarPagoSEPA( _ - // Me.n_fecha, _ - // Me.empresa, _ - // Replace(Format(IIf(Me.n_moneda.column(1) = "EUR", Me.n_pago, Me.n_cambio), "0.00"), ",", "."), _ - // Me.n_caja, _ - // isUeeMember, _ - // "TRANSFER_" & DFirst("alias", "Proveedores", "[Id_Proveedor] =" & vSupplierFk), _ - // 1, _ - // Me.n_moneda.column(1), _ - // vSupplierFk) - // MsgBox "Fichero Generado CORRECTAMENTE", vbInformation - // break; - - default: - break; - } - return newPayment; - } catch (e) { - if (tx) await tx.rollback(); - throw e; - } - }; -}; - -async function emitPagare(concept, paymentFk) { - const query = `INSERT INTO vn.promissoryNote ( concept, paymentFk) VALUES(?, ? )`; - const pagareId = await Self.rawSql(query, [concept, paymentFk], myOptions); - if (pagareId) return pagareId; - throw new UserError('Pagaré'); -} From f6c3893d000a6fe1f7aeeadb39893f5b6fd20116 Mon Sep 17 00:00:00 2001 From: Javier Segarra Date: Mon, 13 Jan 2025 12:41:36 +0100 Subject: [PATCH 059/149] feat: refs #7134 minor changes --- db/dump/fixtures.before.sql | 4 ++-- modules/supplier/back/methods/supplier/receipts.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/db/dump/fixtures.before.sql b/db/dump/fixtures.before.sql index 3d2101604a..4042246df9 100644 --- a/db/dump/fixtures.before.sql +++ b/db/dump/fixtures.before.sql @@ -4045,8 +4045,8 @@ 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 - ('2024-09-15',1,1000.00,1,NULL,1,1,0.0,'n/pago',442,'2024-11-20 13:06:02.000',1,'2024-09-15',9); +INSERT INTO vn.payment (received, supplierFk, amount, currencyFk, divisa, bankFk, payMethodFk, bankingFees, concept, companyFk, created, isConciliated, dueDated, workerFk) VALUES + ('2024-09-15', 1, 1000.00, 1, NULL, 1, 1, 0.0, 'n/pago', 442, '2024-11-20 13:06:02.000', 1, '2024-09-15', 9); INSERT INTO vn.referenceRate (currencyFk, dated, value) VALUES (2, '2000-12-01', 1.0495), diff --git a/modules/supplier/back/methods/supplier/receipts.js b/modules/supplier/back/methods/supplier/receipts.js index 9dcef17de5..1b4dfe40be 100644 --- a/modules/supplier/back/methods/supplier/receipts.js +++ b/modules/supplier/back/methods/supplier/receipts.js @@ -3,7 +3,7 @@ const ParameterizedSQL = require('loopback-connector').ParameterizedSQL; const {buildFilter, mergeFilters} = require('vn-loopback/util/filter'); module.exports = Self => { Self.remoteMethodCtx('receipts', { - description: 'Find all clients matched by the filter', + description: 'Find all suppliers matched by the filter', accessType: 'READ', accepts: [ { @@ -36,7 +36,7 @@ module.exports = Self => { { arg: 'orderBy', type: 'string', - description: 'The client fiscal id', + description: 'The supplier fiscal id', enum: ['issued', ' bookEntried', ' booked', ' dueDate'], }, { From 60f0b169d4697221ebb4ee2e67a2013cbb4e2313 Mon Sep 17 00:00:00 2001 From: carlossa Date: Mon, 13 Jan 2025 13:56:24 +0100 Subject: [PATCH 060/149] fix: refs #6553 fix advanced --- modules/worker/back/models/worker.json | 42 ++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/modules/worker/back/models/worker.json b/modules/worker/back/models/worker.json index 80d0f1a716..e2e4658e26 100644 --- a/modules/worker/back/models/worker.json +++ b/modules/worker/back/models/worker.json @@ -355,6 +355,48 @@ "phone" ] } + }, + { + "relation": "business", + "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" + ] + } + } + ] + } } ] } From f0e9cce2286a08a59f555573e5ac0daf3bdd664a Mon Sep 17 00:00:00 2001 From: Javier Segarra Date: Mon, 13 Jan 2025 22:52:35 +0100 Subject: [PATCH 061/149] fix: refs #7134 remove unnused method --- modules/supplier/back/methods/supplier/receipts.js | 8 +++++++- modules/supplier/back/models/supplier.js | 1 - 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/modules/supplier/back/methods/supplier/receipts.js b/modules/supplier/back/methods/supplier/receipts.js index 1b4dfe40be..50f4610dab 100644 --- a/modules/supplier/back/methods/supplier/receipts.js +++ b/modules/supplier/back/methods/supplier/receipts.js @@ -62,13 +62,16 @@ module.exports = Self => { if (typeof options == 'object') Object.assign(myOptions, options); + const where = buildFilter(ctx.args, (param, value) => { switch (param) { case 'bankFk': - return {'bankFk': value}; + return {[param]: value}; } }); + let stmts = []; + stmts.push(new ParameterizedSQL('CALL vn.supplier_statementWithEntries(?,?,?,?,?,?)', [ args.supplierId, args.currencyFk ?? 1, @@ -77,14 +80,17 @@ module.exports = Self => { 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; diff --git a/modules/supplier/back/models/supplier.js b/modules/supplier/back/models/supplier.js index 6bf9ecf32f..63bd65fbd8 100644 --- a/modules/supplier/back/models/supplier.js +++ b/modules/supplier/back/models/supplier.js @@ -8,7 +8,6 @@ module.exports = Self => { require('../methods/supplier/updateFiscalData')(Self); require('../methods/supplier/consumption')(Self); require('../methods/supplier/freeAgencies')(Self); - require('../methods/supplier/createPayment')(Self); require('../methods/supplier/receipts')(Self); require('../methods/supplier/campaignMetricsPdf')(Self); require('../methods/supplier/campaignMetricsEmail')(Self); From 9bfc2a01c5ea12bc2164c2eb98de3bae82b52201 Mon Sep 17 00:00:00 2001 From: Javier Segarra Date: Mon, 13 Jan 2025 23:09:13 +0100 Subject: [PATCH 062/149] perf: refs #7134 sql style --- .../vn/procedures/supplier_statementWithEntries.sql | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/db/routines/vn/procedures/supplier_statementWithEntries.sql b/db/routines/vn/procedures/supplier_statementWithEntries.sql index 625b5195e2..827e4b24db 100644 --- a/db/routines/vn/procedures/supplier_statementWithEntries.sql +++ b/db/routines/vn/procedures/supplier_statementWithEntries.sql @@ -40,7 +40,8 @@ BEGIN IFNULL(invoiceCurrency, 0), 2 ) currencyBalance FROM ( - SELECT NULL bankFk, NULL bank, + SELECT NULL bankFk, + NULL bank, ii.companyFk, ii.serial, ii.id, @@ -74,7 +75,7 @@ BEGIN GROUP BY iid.id, ii.id UNION ALL SELECT p.bankFk, - a.bank 'bank' , + a.bank 'bank', p.companyFk, NULL, p.id, @@ -103,15 +104,14 @@ BEGIN LEFT JOIN accounting a ON a.id = p.bankFk LEFT JOIN payMethod pm ON pm.id = p.payMethodFk LEFT JOIN promissoryNote pn ON pn.paymentFk = p.id - - WHERE p.received >= vBalanceStartingDate AND p.supplierFk = vSupplierFk AND vCurrencyFk IN (p.currencyFk, 0) AND vCompanyFk IN (p.companyFk, 0) AND (vIsConciliated = p.isConciliated OR NOT vIsConciliated) UNION ALL - SELECT NULL, NULL bankFk, + SELECT NULL, + NULL bankFk, companyFk, NULL, se.id, From 96649f5d8a0d51687a7b068ed8489a4a1236068b Mon Sep 17 00:00:00 2001 From: Javier Segarra Date: Mon, 13 Jan 2025 23:13:26 +0100 Subject: [PATCH 063/149] feat: refs #7134 remove default value --- modules/supplier/back/methods/supplier/receipts.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/supplier/back/methods/supplier/receipts.js b/modules/supplier/back/methods/supplier/receipts.js index 50f4610dab..cc7b03a42d 100644 --- a/modules/supplier/back/methods/supplier/receipts.js +++ b/modules/supplier/back/methods/supplier/receipts.js @@ -74,7 +74,7 @@ module.exports = Self => { stmts.push(new ParameterizedSQL('CALL vn.supplier_statementWithEntries(?,?,?,?,?,?)', [ args.supplierId, - args.currencyFk ?? 1, + args.currencyFk, args.companyId, args.orderBy ?? 'issued', args.isConciliated ?? false, From 024ab8602d6f761e4a918486b90a412ba4f87e9d Mon Sep 17 00:00:00 2001 From: carlossa Date: Wed, 15 Jan 2025 10:31:49 +0100 Subject: [PATCH 064/149] fix: refs #6553 fix back advanced summary --- modules/worker/back/models/worker.json | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/modules/worker/back/models/worker.json b/modules/worker/back/models/worker.json index e2e4658e26..346c70d567 100644 --- a/modules/worker/back/models/worker.json +++ b/modules/worker/back/models/worker.json @@ -106,6 +106,11 @@ "model": "WorkerDepartment", "foreignKey": "id" }, + "currentBusiness": { + "type": "belongsTo", + "model": "Business", + "foreignKey": "businessFk" + }, "collegues": { "type": "hasMany", "model": "WorkerTeamCollegues", @@ -344,7 +349,8 @@ "educationLevelFk", "originCountryFk", "maritalStatus", - "SSN" + "SSN", + "businessFk" ], "include": [ { @@ -357,7 +363,7 @@ } }, { - "relation": "business", + "relation": "currentBusiness", "scope": { "fields": [ "id", From 477646ba311893f8a22e47785fdd5dbd7fff597e Mon Sep 17 00:00:00 2001 From: guillermo Date: Mon, 20 Jan 2025 14:43:14 +0100 Subject: [PATCH 065/149] feat: refs #8227 Roadmap changes --- .../procedures/vehicle_checkNumberPlate.sql | 27 ++++++++++++++----- .../vn/triggers/roadmap_beforeInsert.sql | 2 ++ .../vn/triggers/roadmap_beforeUpdate.sql | 2 ++ .../11416-goldenTulip/00-firstScript.sql | 5 ++++ 4 files changed, 29 insertions(+), 7 deletions(-) create mode 100644 db/versions/11416-goldenTulip/00-firstScript.sql diff --git a/db/routines/vn/procedures/vehicle_checkNumberPlate.sql b/db/routines/vn/procedures/vehicle_checkNumberPlate.sql index cbbcbec639..613dda3682 100644 --- a/db/routines/vn/procedures/vehicle_checkNumberPlate.sql +++ b/db/routines/vn/procedures/vehicle_checkNumberPlate.sql @@ -1,17 +1,30 @@ DELIMITER $$ -CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `vn`.`vehicle_checkNumberPlate`(vNumberPlate VARCHAR(10), vCountryCodeFk VARCHAR(2)) +CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `vn`.`vehicle_checkNumberPlate`( + vNumberPlate VARCHAR(10), + vCountryCodeFk VARCHAR(2) +) BEGIN /** - * Comprueba si la matricula pasada tiene el formato correcto dependiendo del pais del vehiculo + * Comprueba si la matricula pasada tiene el formato + * correcto dependiendo del pais del vehiculo. + * + * @param vNumberPlate Número de matricula + * @param vCountryCodeFk Código de pais */ DECLARE vRegex VARCHAR(45); - SELECT vp.regex INTO vRegex - FROM vehiclePlateRegex vp - WHERE vp.countryCodeFk = vCountryCodeFk; - + IF vCountryCodeFk IS NULL THEN + SET vRegex = '^[A-Z0-9 -]{6,12}$'; + ELSE + SELECT regex INTO vRegex + FROM vehiclePlateRegex + WHERE countryCodeFk = vCountryCodeFk; + END IF; + IF NOT vNumberPlate REGEXP BINARY (vRegex)THEN - CALL util.throw(CONCAT('Error: la matricula ', vNumberPlate, ' no es valida para ',vCountryCodeFk)); + CALL util.throw(CONCAT('La matricula ', vNumberPlate, + ' no es valida', IF(vCountryCodeFk IS NOT NULL, + CONCAT(' para ', vCountryCodeFk), ''))); END IF; END$$ DELIMITER ; diff --git a/db/routines/vn/triggers/roadmap_beforeInsert.sql b/db/routines/vn/triggers/roadmap_beforeInsert.sql index 2f9481140a..0a4386e633 100644 --- a/db/routines/vn/triggers/roadmap_beforeInsert.sql +++ b/db/routines/vn/triggers/roadmap_beforeInsert.sql @@ -3,6 +3,8 @@ CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `vn`.`roadmap_beforeInsert` BEFORE INSERT ON `roadmap` FOR EACH ROW BEGIN + CALL vehicle_checkNumberPlate(NEW.tractorPlate, NULL); + CALL vehicle_checkNumberPlate(NEW.trailerPlate, NULL); IF NEW.driver1Fk IS NOT NULL THEN SET NEW.driverName = (SELECT firstName FROM worker WHERE id = NEW.driver1Fk); ELSE diff --git a/db/routines/vn/triggers/roadmap_beforeUpdate.sql b/db/routines/vn/triggers/roadmap_beforeUpdate.sql index a2a02e96a5..b381854ed5 100644 --- a/db/routines/vn/triggers/roadmap_beforeUpdate.sql +++ b/db/routines/vn/triggers/roadmap_beforeUpdate.sql @@ -3,6 +3,8 @@ CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `vn`.`roadmap_beforeUpdate` BEFORE UPDATE ON `roadmap` FOR EACH ROW BEGIN + CALL vehicle_checkNumberPlate(NEW.tractorPlate, NULL); + CALL vehicle_checkNumberPlate(NEW.trailerPlate, NULL); IF NEW.driver1Fk IS NOT NULL THEN SET NEW.driverName = (SELECT firstName FROM worker WHERE id = NEW.driver1Fk); ELSE diff --git a/db/versions/11416-goldenTulip/00-firstScript.sql b/db/versions/11416-goldenTulip/00-firstScript.sql new file mode 100644 index 0000000000..9b89fcfa6f --- /dev/null +++ b/db/versions/11416-goldenTulip/00-firstScript.sql @@ -0,0 +1,5 @@ +ALTER TABLE vn.roadmap + MODIFY COLUMN m3 int(10) unsigned DEFAULT NULL NULL COMMENT 'Capacidad máxima del remolque'; +ALTER TABLE vn.route + ADD roadmapStopFk int(11) NULL, + ADD CONSTRAINT route_roadmapStop_FK FOREIGN KEY (roadmapStopFk) REFERENCES vn.roadmapStop(id) ON DELETE RESTRICT ON UPDATE CASCADE; From 946d08e5432a34e0259ac0fa01e90c5da76780c7 Mon Sep 17 00:00:00 2001 From: jorgep Date: Mon, 20 Jan 2025 17:29:18 +0100 Subject: [PATCH 066/149] feat: refs #7119 update ACLs and remove unused models for vehicle management --- .../11394-brownAsparagus/00-firstScript.sql | 2 + modules/route/back/methods/vehicle/filter.js | 10 ++-- modules/route/back/model-config.json | 6 --- modules/route/back/models/fuel-type.json | 2 +- modules/route/back/models/ppe.json | 10 +--- modules/route/back/models/vehicle-event.json | 51 ------------------- modules/route/back/models/vehicle-notes.json | 35 ------------- modules/route/back/models/vehicle-state.json | 10 +--- 8 files changed, 9 insertions(+), 117 deletions(-) delete mode 100644 modules/route/back/models/vehicle-event.json delete mode 100644 modules/route/back/models/vehicle-notes.json diff --git a/db/versions/11394-brownAsparagus/00-firstScript.sql b/db/versions/11394-brownAsparagus/00-firstScript.sql index d02482efdd..4d6cedb69b 100644 --- a/db/versions/11394-brownAsparagus/00-firstScript.sql +++ b/db/versions/11394-brownAsparagus/00-firstScript.sql @@ -2,4 +2,6 @@ INSERT INTO salix.ACL (model, property, accessType, permission, principalType, p VALUES ('Vehicle', 'filter', 'READ', 'ALLOW', 'ROLE', 'delivery'), ('Vehicle', 'updateAttributes', 'WRITE', 'ALLOW', 'ROLE', 'delivery'), ('BankPolicy', 'find', 'READ', 'ALLOW', 'ROLE', 'delivery'), + ('VehicleState', 'find', 'READ', 'ALLOW', 'ROLE', 'delivery' ), + ('Ppe', 'find', 'READ', 'ALLOW', 'ROLE', 'delivery' ), ('Vehicle', 'deleteById', 'WRITE', 'ALLOW', 'ROLE', 'deliveryBoss'); \ No newline at end of file diff --git a/modules/route/back/methods/vehicle/filter.js b/modules/route/back/methods/vehicle/filter.js index 17c132c2c8..ea2a94281a 100644 --- a/modules/route/back/methods/vehicle/filter.js +++ b/modules/route/back/methods/vehicle/filter.js @@ -92,9 +92,9 @@ module.exports = Self => { case 'vehicleStateFk': return {vehicleStateFk: value}; } - }); + }) || {}; - const myFilter = mergeFilters(filter, {where}); + const myFilter = mergeFilters(filter, {where: {...where, isActive: true}}); const stmt = new ParameterizedSQL(` SELECT v.id, @@ -122,16 +122,14 @@ module.exports = Self => { FROM vehicleEvent e LEFT JOIN vehicleState s ON e.vehicleStateFk = s.id ) sub ON sub.vehicleFk = v.id AND sub.rn = 1 - ` - ); + `); const sqlWhere = conn.makeWhere(myFilter.where); stmt.merge(sqlWhere); stmt.merge(conn.makePagination(myFilter)); const sql = ParameterizedSQL.join([stmt], ';'); - const result = await conn.executeStmt(sql, myOptions); - return result; + return conn.executeStmt(sql, myOptions); }; }; diff --git a/modules/route/back/model-config.json b/modules/route/back/model-config.json index 07054061fd..16e6d69677 100644 --- a/modules/route/back/model-config.json +++ b/modules/route/back/model-config.json @@ -44,12 +44,6 @@ "Vehicle": { "dataSource": "vn" }, - "VehicleEvent": { - "dataSource": "vn" - }, - "VehicleNotes": { - "dataSource": "vn" - }, "VehicleState": { "dataSource": "vn" }, diff --git a/modules/route/back/models/fuel-type.json b/modules/route/back/models/fuel-type.json index c7f96b3253..d426148371 100644 --- a/modules/route/back/models/fuel-type.json +++ b/modules/route/back/models/fuel-type.json @@ -23,7 +23,7 @@ { "accessType": "READ", "principalType": "ROLE", - "principalId": "employee", + "principalId": "$everyone", "permission": "ALLOW" } ] diff --git a/modules/route/back/models/ppe.json b/modules/route/back/models/ppe.json index 7af5cb6844..0825d348ca 100644 --- a/modules/route/back/models/ppe.json +++ b/modules/route/back/models/ppe.json @@ -11,13 +11,5 @@ "type": "number", "id": true } - }, - "acls": [ - { - "accessType": "READ", - "principalType": "ROLE", - "principalId": "delivery", - "permission": "ALLOW" - } - ] + } } \ No newline at end of file diff --git a/modules/route/back/models/vehicle-event.json b/modules/route/back/models/vehicle-event.json deleted file mode 100644 index 324076723c..0000000000 --- a/modules/route/back/models/vehicle-event.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "name": "VehicleEvent", - "base": "VnModel", - "options": { - "mysql": { - "table": "vehicleEvent" - } - }, - "properties": { - "id": { - "type": "number", - "id": true - }, - "started": { - "type": "date" - }, - "finished": { - "type": "date" - }, - "vehicleStateFk": { - "type": "number" - }, - "description": { - "type": "string" - }, - "vehicleFk": { - "type": "number" - }, - "userFk": { - "type": "number" - }, - "notified": { - "type": "date" - } - }, - "relations": { - "state": { - "type": "belongsTo", - "model": "VehicleState", - "foreignKey": "vehicleStateFk" - } - }, - "acls": [ - { - "accessType": "READ", - "principalType": "ROLE", - "principalId": "$everyone", - "permission": "ALLOW" - } - ] -} \ No newline at end of file diff --git a/modules/route/back/models/vehicle-notes.json b/modules/route/back/models/vehicle-notes.json deleted file mode 100644 index 922f9b14b9..0000000000 --- a/modules/route/back/models/vehicle-notes.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "VehicleNotes", - "base": "VnModel", - "options": { - "mysql": { - "table": "vehicleNotes" - } - }, - "properties": { - "id": { - "type": "number", - "id": true - }, - "vehicleFk": { - "type": "number" - }, - "created": { - "type": "date" - }, - "note": { - "type": "string" - }, - "userFk": { - "type": "number" - } - }, - "acls": [ - { - "accessType": "READ", - "principalType": "ROLE", - "principalId": "delivery", - "permission": "ALLOW" - } - ] -} \ No newline at end of file diff --git a/modules/route/back/models/vehicle-state.json b/modules/route/back/models/vehicle-state.json index 1f71333eb9..b53719f631 100644 --- a/modules/route/back/models/vehicle-state.json +++ b/modules/route/back/models/vehicle-state.json @@ -17,13 +17,5 @@ "hasToNotify": { "type": "number" } - }, - "acls": [ - { - "accessType": "READ", - "principalType": "ROLE", - "principalId": "$everyone", - "permission": "ALLOW" - } - ] + } } \ No newline at end of file From 3d2a7cfb6695e3243a7a926ac164f9f2392d104a Mon Sep 17 00:00:00 2001 From: jorgep Date: Mon, 20 Jan 2025 18:05:33 +0100 Subject: [PATCH 067/149] feat: refs #7119 update ACLs for vehicle management and refine vehicle filter logic --- .../11394-brownAsparagus/00-firstScript.sql | 15 +++++++----- modules/route/back/methods/vehicle/filter.js | 2 +- modules/route/back/models/vehicle.json | 24 +++++++++---------- 3 files changed, 21 insertions(+), 20 deletions(-) diff --git a/db/versions/11394-brownAsparagus/00-firstScript.sql b/db/versions/11394-brownAsparagus/00-firstScript.sql index 4d6cedb69b..72fb6b13d1 100644 --- a/db/versions/11394-brownAsparagus/00-firstScript.sql +++ b/db/versions/11394-brownAsparagus/00-firstScript.sql @@ -1,7 +1,10 @@ INSERT INTO salix.ACL (model, property, accessType, permission, principalType, principalId) - VALUES ('Vehicle', 'filter', 'READ', 'ALLOW', 'ROLE', 'delivery'), - ('Vehicle', 'updateAttributes', 'WRITE', 'ALLOW', 'ROLE', 'delivery'), - ('BankPolicy', 'find', 'READ', 'ALLOW', 'ROLE', 'delivery'), - ('VehicleState', 'find', 'READ', 'ALLOW', 'ROLE', 'delivery' ), - ('Ppe', 'find', 'READ', 'ALLOW', 'ROLE', 'delivery' ), - ('Vehicle', 'deleteById', 'WRITE', 'ALLOW', 'ROLE', 'deliveryBoss'); \ No newline at end of file + VALUES ('Vehicle', 'filter', 'READ', 'ALLOW', 'ROLE', 'administrative'), + ('Vehicle', 'find', 'READ', 'ALLOW', 'ROLE', 'administrative'), + ('Vehicle', 'findById', 'READ', 'ALLOW', 'ROLE', 'administrative'), + ('Vehicle', 'updateAttributes', 'WRITE', 'ALLOW', 'ROLE', 'administrative'), + ('BankPolicy', 'find', 'READ', 'ALLOW', 'ROLE', 'administrative'), + ('VehicleState', 'find', 'READ', 'ALLOW', 'ROLE', 'administrative' ), + ('Ppe', 'find', 'READ', 'ALLOW', 'ROLE', 'administrative' ), + ('Vehicle', 'deleteById', 'WRITE', 'ALLOW', 'ROLE', 'administrative'), + ('Vehicle', '__get__active', 'READ', 'ALLOW', 'ROLE', 'employee'); \ No newline at end of file diff --git a/modules/route/back/methods/vehicle/filter.js b/modules/route/back/methods/vehicle/filter.js index ea2a94281a..11cc4d82af 100644 --- a/modules/route/back/methods/vehicle/filter.js +++ b/modules/route/back/methods/vehicle/filter.js @@ -94,7 +94,7 @@ module.exports = Self => { } }) || {}; - const myFilter = mergeFilters(filter, {where: {...where, isActive: true}}); + const myFilter = mergeFilters(filter, {where}); const stmt = new ParameterizedSQL(` SELECT v.id, diff --git a/modules/route/back/models/vehicle.json b/modules/route/back/models/vehicle.json index 9269cdebbc..e6d58de99e 100644 --- a/modules/route/back/models/vehicle.json +++ b/modules/route/back/models/vehicle.json @@ -104,19 +104,17 @@ "property": "ppeFk" } }, - "scope": { - "where": { - "isActive": { - "neq": false + "scopes": { + "active": { + "fields": [ + "id", + "numberPlate" + ], + "where": { + "isActive": { + "neq": false + } } } - }, - "acls": [ - { - "accessType": "READ", - "principalType": "ROLE", - "principalId": "$everyone", - "permission": "ALLOW" - } - ] + } } \ No newline at end of file From 55a0a5bc9a317f46b22ec3d5ae19eecc8f4f8d5c Mon Sep 17 00:00:00 2001 From: jorgep Date: Tue, 21 Jan 2025 11:52:09 +0100 Subject: [PATCH 068/149] feat: refs #7119 add delivery role permissions --- db/versions/11394-brownAsparagus/00-firstScript.sql | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/db/versions/11394-brownAsparagus/00-firstScript.sql b/db/versions/11394-brownAsparagus/00-firstScript.sql index 72fb6b13d1..77dfab7d34 100644 --- a/db/versions/11394-brownAsparagus/00-firstScript.sql +++ b/db/versions/11394-brownAsparagus/00-firstScript.sql @@ -1,10 +1,17 @@ INSERT INTO salix.ACL (model, property, accessType, permission, principalType, principalId) VALUES ('Vehicle', 'filter', 'READ', 'ALLOW', 'ROLE', 'administrative'), + ('Vehicle', 'filter', 'READ', 'ALLOW', 'ROLE', 'delivery'), ('Vehicle', 'find', 'READ', 'ALLOW', 'ROLE', 'administrative'), + ('Vehicle', 'find', 'READ', 'ALLOW', 'ROLE', 'delivery'), ('Vehicle', 'findById', 'READ', 'ALLOW', 'ROLE', 'administrative'), ('Vehicle', 'updateAttributes', 'WRITE', 'ALLOW', 'ROLE', 'administrative'), + ('Vehicle', 'updateAttributes', 'WRITE', 'ALLOW', 'ROLE', 'delivery'), ('BankPolicy', 'find', 'READ', 'ALLOW', 'ROLE', 'administrative'), - ('VehicleState', 'find', 'READ', 'ALLOW', 'ROLE', 'administrative' ), + ('BankPolicy', 'find', 'READ', 'ALLOW', 'ROLE', 'delivery'), + ('VehicleState', 'find', 'READ', 'ALLOW', 'ROLE', 'administrative'), + ('VehicleState', 'find', 'READ', 'ALLOW', 'ROLE', 'delivery'), ('Ppe', 'find', 'READ', 'ALLOW', 'ROLE', 'administrative' ), + ('Ppe', 'find', 'READ', 'ALLOW', 'ROLE', 'delivery' ), ('Vehicle', 'deleteById', 'WRITE', 'ALLOW', 'ROLE', 'administrative'), + ('Vehicle', 'deleteById', 'WRITE', 'ALLOW', 'ROLE', 'delivery'), ('Vehicle', '__get__active', 'READ', 'ALLOW', 'ROLE', 'employee'); \ No newline at end of file From b20dee8382b896965cfd8bdbf0fb35d3305e3437 Mon Sep 17 00:00:00 2001 From: jtubau Date: Tue, 21 Jan 2025 12:28:34 +0100 Subject: [PATCH 069/149] feat: refs #8304 add notes field to business model --- modules/client/back/models/business.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/modules/client/back/models/business.json b/modules/client/back/models/business.json index 58e989ae08..4168458425 100644 --- a/modules/client/back/models/business.json +++ b/modules/client/back/models/business.json @@ -13,7 +13,10 @@ }, "workcenterFk" : { "type": "number" - } + }, + "notes" : { + "type": "string" + } }, "relations": { "worker": { From 482fe77159f72144b3f733f7b86df44509586987 Mon Sep 17 00:00:00 2001 From: guillermo Date: Tue, 21 Jan 2025 14:03:50 +0100 Subject: [PATCH 070/149] feat: refs #8227 Roadmap changes --- db/dump/fixtures.before.sql | 4 ++-- db/routines/vn/triggers/roadmapStop_beforeInsert.sql | 3 +-- db/routines/vn/triggers/roadmapStop_beforeUpdate.sql | 3 +-- db/routines/vn/triggers/roadmap_beforeInsert.sql | 12 ++++++------ db/routines/vn/triggers/roadmap_beforeUpdate.sql | 12 ++++++------ db/versions/11416-goldenTulip/00-firstScript.sql | 8 ++++---- db/versions/11416-goldenTulip/01-firstScript.sql | 1 + db/versions/11416-goldenTulip/02-firstScript.sql | 4 ++++ 8 files changed, 25 insertions(+), 22 deletions(-) create mode 100644 db/versions/11416-goldenTulip/01-firstScript.sql create mode 100644 db/versions/11416-goldenTulip/02-firstScript.sql diff --git a/db/dump/fixtures.before.sql b/db/dump/fixtures.before.sql index 590fe34b67..cc1a9fc6f1 100644 --- a/db/dump/fixtures.before.sql +++ b/db/dump/fixtures.before.sql @@ -2749,13 +2749,13 @@ INSERT INTO `vn`.`roadmapAddress` (`addressFk`) (3), (4); -INSERT INTO `vn`.`roadmap` (`id`, `name`, `tractorPlate`, `trailerPlate`, `phone`, `supplierFk`, `etd`, `observations`, `userFk`, `price`, `driverName`) +INSERT INTO `vn`.`roadmap` (`id`, `name`, `tractorPlate`, `trailerPlate`, `phone`, `supplierFk`, `etd`, `observations`, `editorFk`, `price`, `driverName`) VALUES (1, 'val-algemesi', '1234-BCD', '9876-BCD', '111111111', 1, util.VN_NOW(), 'this is test observation', 1, 15, 'Batman'), (2, 'alg-valencia', '2345-CDF', '8765-BCD', '111111111', 1, util.VN_NOW(), 'test observation', 1, 20, 'Robin'), (3, 'alz-algemesi', '3456-DFG', '7654-BCD', '222222222', 2, DATE_ADD(util.VN_NOW(), INTERVAL 2 DAY), 'observations...', 2, 25, 'Driverman'); -INSERT INTO `vn`.`roadmapStop` (`id`, `roadmapFk`, `addressFk`, `eta`, `description`, `userFk`) +INSERT INTO `vn`.`roadmapStop` (`id`, `roadmapFk`, `addressFk`, `eta`, `description`, `editorFk`) VALUES (1, 1, 1, DATE_ADD(util.VN_NOW(), INTERVAL 1 DAY), 'Best truck in fleet', 1), (2, 1, 2, DATE_ADD(util.VN_NOW(), INTERVAL '1 2' DAY_HOUR), 'Second truck in fleet', 1), diff --git a/db/routines/vn/triggers/roadmapStop_beforeInsert.sql b/db/routines/vn/triggers/roadmapStop_beforeInsert.sql index d71942feab..b87a52bdc8 100644 --- a/db/routines/vn/triggers/roadmapStop_beforeInsert.sql +++ b/db/routines/vn/triggers/roadmapStop_beforeInsert.sql @@ -3,8 +3,7 @@ CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `vn`.`roadmapStop_beforeInser BEFORE INSERT ON `roadmapStop` FOR EACH ROW BEGIN - + SET NEW.editorFk = account.myUser_getId(); SET NEW.description = UCASE(NEW.description); - END$$ DELIMITER ; diff --git a/db/routines/vn/triggers/roadmapStop_beforeUpdate.sql b/db/routines/vn/triggers/roadmapStop_beforeUpdate.sql index c3cbf25976..ec4dbe5baa 100644 --- a/db/routines/vn/triggers/roadmapStop_beforeUpdate.sql +++ b/db/routines/vn/triggers/roadmapStop_beforeUpdate.sql @@ -3,8 +3,7 @@ CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `vn`.`roadmapStop_beforeUpdat BEFORE UPDATE ON `roadmapStop` FOR EACH ROW BEGIN - + SET NEW.editorFk = account.myUser_getId(); SET NEW.description = UCASE(NEW.description); - END$$ DELIMITER ; diff --git a/db/routines/vn/triggers/roadmap_beforeInsert.sql b/db/routines/vn/triggers/roadmap_beforeInsert.sql index 0a4386e633..118653d44f 100644 --- a/db/routines/vn/triggers/roadmap_beforeInsert.sql +++ b/db/routines/vn/triggers/roadmap_beforeInsert.sql @@ -3,12 +3,12 @@ CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `vn`.`roadmap_beforeInsert` BEFORE INSERT ON `roadmap` FOR EACH ROW BEGIN - CALL vehicle_checkNumberPlate(NEW.tractorPlate, NULL); - CALL vehicle_checkNumberPlate(NEW.trailerPlate, NULL); - IF NEW.driver1Fk IS NOT NULL THEN - SET NEW.driverName = (SELECT firstName FROM worker WHERE id = NEW.driver1Fk); - ELSE - SET NEW.driverName = NULL; + SET NEW.editorFk = account.myUser_getId(); + IF NEW.tractorPlate IS NOT NULL THEN + CALL vehicle_checkNumberPlate(NEW.tractorPlate, NULL); + END IF; + IF NEW.trailerPlate IS NOT NULL THEN + CALL vehicle_checkNumberPlate(NEW.trailerPlate, NULL); END IF; END$$ DELIMITER ; \ No newline at end of file diff --git a/db/routines/vn/triggers/roadmap_beforeUpdate.sql b/db/routines/vn/triggers/roadmap_beforeUpdate.sql index b381854ed5..a60b1e892e 100644 --- a/db/routines/vn/triggers/roadmap_beforeUpdate.sql +++ b/db/routines/vn/triggers/roadmap_beforeUpdate.sql @@ -3,12 +3,12 @@ CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `vn`.`roadmap_beforeUpdate` BEFORE UPDATE ON `roadmap` FOR EACH ROW BEGIN - CALL vehicle_checkNumberPlate(NEW.tractorPlate, NULL); - CALL vehicle_checkNumberPlate(NEW.trailerPlate, NULL); - IF NEW.driver1Fk IS NOT NULL THEN - SET NEW.driverName = (SELECT firstName FROM worker WHERE id = NEW.driver1Fk); - ELSE - SET NEW.driverName = NULL; + SET NEW.editorFk = account.myUser_getId(); + IF NEW.tractorPlate IS NOT NULL THEN + CALL vehicle_checkNumberPlate(NEW.tractorPlate, NULL); + END IF; + IF NEW.trailerPlate IS NOT NULL THEN + CALL vehicle_checkNumberPlate(NEW.trailerPlate, NULL); END IF; END$$ DELIMITER ; \ No newline at end of file diff --git a/db/versions/11416-goldenTulip/00-firstScript.sql b/db/versions/11416-goldenTulip/00-firstScript.sql index 9b89fcfa6f..d06f25493b 100644 --- a/db/versions/11416-goldenTulip/00-firstScript.sql +++ b/db/versions/11416-goldenTulip/00-firstScript.sql @@ -1,5 +1,5 @@ ALTER TABLE vn.roadmap - MODIFY COLUMN m3 int(10) unsigned DEFAULT NULL NULL COMMENT 'Capacidad máxima del remolque'; -ALTER TABLE vn.route - ADD roadmapStopFk int(11) NULL, - ADD CONSTRAINT route_roadmapStop_FK FOREIGN KEY (roadmapStopFk) REFERENCES vn.roadmapStop(id) ON DELETE RESTRICT ON UPDATE CASCADE; + MODIFY COLUMN m3 int(10) unsigned DEFAULT NULL NULL COMMENT 'Capacidad máxima del remolque', + CHANGE driver1Fk driverFk int(10) unsigned DEFAULT NULL NULL COMMENT 'Conductor principal' AFTER driverName, + CHANGE driver2Fk codriverFk int(10) unsigned DEFAULT NULL NULL COMMENT 'Copiloto' AFTER driverFk, + CHANGE userFk editorFk int(10) unsigned DEFAULT NULL NULL AFTER m3; \ No newline at end of file diff --git a/db/versions/11416-goldenTulip/01-firstScript.sql b/db/versions/11416-goldenTulip/01-firstScript.sql new file mode 100644 index 0000000000..76b69387c4 --- /dev/null +++ b/db/versions/11416-goldenTulip/01-firstScript.sql @@ -0,0 +1 @@ +ALTER TABLE vn.roadmapStop CHANGE userFk editorFk int(10) unsigned DEFAULT NULL NULL; \ No newline at end of file diff --git a/db/versions/11416-goldenTulip/02-firstScript.sql b/db/versions/11416-goldenTulip/02-firstScript.sql new file mode 100644 index 0000000000..89833fe8b4 --- /dev/null +++ b/db/versions/11416-goldenTulip/02-firstScript.sql @@ -0,0 +1,4 @@ +ALTER TABLE vn.route + ADD roadmapStopFk int(11) NULL, + ADD CONSTRAINT route_roadmapStop_FK FOREIGN KEY (roadmapStopFk) REFERENCES vn.roadmapStop(id) ON DELETE RESTRICT ON UPDATE CASCADE, + CHANGE editorFk editorFk int(10) unsigned DEFAULT NULL NULL AFTER roadmapStopFk; From 7f5224ebcabe7c504ac67123aed95e5b079877fd Mon Sep 17 00:00:00 2001 From: jtubau Date: Tue, 21 Jan 2025 14:45:13 +0100 Subject: [PATCH 071/149] feat: refs #8304 add ACL entries for Business and Worker models and update worker model relationships --- db/versions/11404-azureAnthurium/00-firstScript.sql | 6 +++++- modules/worker/back/models/worker.json | 5 +++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/db/versions/11404-azureAnthurium/00-firstScript.sql b/db/versions/11404-azureAnthurium/00-firstScript.sql index 7a4dfe9bcb..58e74cbfb6 100644 --- a/db/versions/11404-azureAnthurium/00-firstScript.sql +++ b/db/versions/11404-azureAnthurium/00-firstScript.sql @@ -1,2 +1,6 @@ INSERT INTO salix.ACL (model, property, accessType, permission, principalType, principalId) -VALUES('WorkerDms', 'hasHighPrivs', 'READ', 'ALLOW', 'ROLE', 'hr'); \ No newline at end of file +VALUES + ('WorkerDms', 'hasHighPrivs', 'READ', 'ALLOW', 'ROLE', 'hr'), + ('Business', 'updateAttributes', 'WRITE', 'ALLOW', 'ROLE', 'hr'), + ('Worker', '__get__business', 'READ', 'ALLOW', 'ROLE', 'hr') + ; \ No newline at end of file diff --git a/modules/worker/back/models/worker.json b/modules/worker/back/models/worker.json index 705851963a..fbba4c2279 100644 --- a/modules/worker/back/models/worker.json +++ b/modules/worker/back/models/worker.json @@ -142,6 +142,11 @@ "type": "hasMany", "model": "WorkerRelative", "foreignKey": "workerFK" + }, + "business": { + "type": "hasMany", + "model": "Business", + "foreignKey": "workerFk" } }, "acls": [ From 294c2f832efaea595b6279381f7a4f740ecad52e Mon Sep 17 00:00:00 2001 From: Javier Segarra Date: Tue, 21 Jan 2025 14:53:19 +0100 Subject: [PATCH 072/149] Merge branch 'dev' into 7134-supplierBalance --- db/routines/vn/procedures/supplier_statementWithEntries.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/db/routines/vn/procedures/supplier_statementWithEntries.sql b/db/routines/vn/procedures/supplier_statementWithEntries.sql index 827e4b24db..ad80e2c9f8 100644 --- a/db/routines/vn/procedures/supplier_statementWithEntries.sql +++ b/db/routines/vn/procedures/supplier_statementWithEntries.sql @@ -75,7 +75,7 @@ BEGIN GROUP BY iid.id, ii.id UNION ALL SELECT p.bankFk, - a.bank 'bank', + a.bank, p.companyFk, NULL, p.id, From 2ae0097fa821b1335f382d63fe503fa5d28f139a Mon Sep 17 00:00:00 2001 From: jorgep Date: Tue, 21 Jan 2025 15:48:20 +0100 Subject: [PATCH 073/149] feat: refs #7119 add vehicle type management and delivery role permissions --- db/dump/fixtures.before.sql | 11 +++++++++- .../11394-brownAsparagus/00-firstScript.sql | 21 ++++++++++++++++++- 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/db/dump/fixtures.before.sql b/db/dump/fixtures.before.sql index 2899446366..17f7cdf2ff 100644 --- a/db/dump/fixtures.before.sql +++ b/db/dump/fixtures.before.sql @@ -4090,4 +4090,13 @@ INSERT INTO vn.bankPolicy (id, `ref`, amount, committedFee, nonCommittedFee, ann INSERT INTO vn.ppe (id, amortization, firstAmortizated, lastAmortizated, finished, value, planFk, groupFk, account, endowment, elementAccount, nature, location, discharged, cause, isInvestmentAsset, workerFk, companyFk, description, isDone) VALUES (1, 0.00, '2001-01-01', NULL, NULL, 700.95, 16, 4, '3456000000', '4320000000', '12345', 'INMOVILIZADO', 'V02', NULL, NULL, 0, NULL, 442, 'UTILLAJE LASER ROTATIVO AUTONIVELANTE 500M', NULL), - (2, 0.00, '2001-01-01', NULL, NULL, 400.00, 16, 4, '5678000000', '1230000000', '67891', 'INMOVILIZADO', 'V02', NULL, NULL, 0, NULL, 442, 'UTILLAJE BALANZA Z100 150KILOS', NULL); \ No newline at end of file + (2, 0.00, '2001-01-01', NULL, NULL, 400.00, 16, 4, '5678000000', '1230000000', '67891', 'INMOVILIZADO', 'V02', NULL, NULL, 0, NULL, 442, 'UTILLAJE BALANZA Z100 150KILOS', NULL); + +INSERT IGNORE INTO vn.vehicleType (id, name) + VALUES (1,'vehículo empresa'), + (2, 'furgoneta'), + (3, 'cabeza tractora'), + (4, 'remolque'); + + + \ No newline at end of file diff --git a/db/versions/11394-brownAsparagus/00-firstScript.sql b/db/versions/11394-brownAsparagus/00-firstScript.sql index 77dfab7d34..51034c86b2 100644 --- a/db/versions/11394-brownAsparagus/00-firstScript.sql +++ b/db/versions/11394-brownAsparagus/00-firstScript.sql @@ -1,3 +1,4 @@ +USE vn; INSERT INTO salix.ACL (model, property, accessType, permission, principalType, principalId) VALUES ('Vehicle', 'filter', 'READ', 'ALLOW', 'ROLE', 'administrative'), ('Vehicle', 'filter', 'READ', 'ALLOW', 'ROLE', 'delivery'), @@ -14,4 +15,22 @@ INSERT INTO salix.ACL (model, property, accessType, permission, principalType, p ('Ppe', 'find', 'READ', 'ALLOW', 'ROLE', 'delivery' ), ('Vehicle', 'deleteById', 'WRITE', 'ALLOW', 'ROLE', 'administrative'), ('Vehicle', 'deleteById', 'WRITE', 'ALLOW', 'ROLE', 'delivery'), - ('Vehicle', '__get__active', 'READ', 'ALLOW', 'ROLE', 'employee'); \ No newline at end of file + ('Vehicle', '__get__active', 'READ', 'ALLOW', 'ROLE', 'employee'); + +ALTER TABLE vehicle ADD COLUMN importCooler decimal(10,2) DEFAULT NULL; + + +CREATE TABLE IF NOT EXISTS vehicleType ( + id INT(11) PRIMARY KEY AUTO_INCREMENT, + name VARCHAR(45) NOT NULL +); + +INSERT IGNORE INTO vehicleType (id, name) + VALUES (1,'vehículo empresa'), + (2, 'furgoneta'), + (3, 'cabeza tractora'), + (4, 'remolque'); +ALTER TABLE vehicle ADD COLUMN vehicleTypeFk INT(11) DEFAULT 1; + +ALTER TABLE vehicle ADD CONSTRAINT fk_vehicle_vehicleType FOREIGN KEY (vehicleTypeFk) REFERENCES vehicleType(id); + From 630d86778797f6a50e24b6927ed989b8a74209be Mon Sep 17 00:00:00 2001 From: Javier Segarra Date: Tue, 21 Jan 2025 23:09:07 +0100 Subject: [PATCH 074/149] fix: refs #7134 use vn_curdate --- db/dump/fixtures.before.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/db/dump/fixtures.before.sql b/db/dump/fixtures.before.sql index 79ee2463cf..34da74d51d 100644 --- a/db/dump/fixtures.before.sql +++ b/db/dump/fixtures.before.sql @@ -4046,7 +4046,7 @@ 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 - ('2024-09-15', 1, 1000.00, 1, NULL, 1, 1, 0.0, 'n/pago', 442, '2024-11-20 13:06:02.000', 1, '2024-09-15', 9); + (util.VN_CURDATE(), 1, 1000.00, 1, NULL, 1, 1, 0.0, 'n/pago', 442, '2024-11-20 13:06:02.000', 1, util.VN_CURDATE(), 9); INSERT INTO vn.referenceRate (currencyFk, dated, value) VALUES (2, '2000-12-01', 1.0495), From 052630d268139c62573f0e5430fcc0c54277fade Mon Sep 17 00:00:00 2001 From: guillermo Date: Wed, 22 Jan 2025 12:40:58 +0100 Subject: [PATCH 075/149] feat: refs #8227 Roadmap changes --- db/routines/vn/triggers/roadmapStop_beforeInsert.sql | 5 +++++ db/routines/vn/triggers/roadmapStop_beforeUpdate.sql | 7 +++++++ 2 files changed, 12 insertions(+) diff --git a/db/routines/vn/triggers/roadmapStop_beforeInsert.sql b/db/routines/vn/triggers/roadmapStop_beforeInsert.sql index b87a52bdc8..9ec8b72cfa 100644 --- a/db/routines/vn/triggers/roadmapStop_beforeInsert.sql +++ b/db/routines/vn/triggers/roadmapStop_beforeInsert.sql @@ -5,5 +5,10 @@ CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `vn`.`roadmapStop_beforeInser BEGIN SET NEW.editorFk = account.myUser_getId(); SET NEW.description = UCASE(NEW.description); + IF NEW.roadmapFk IS NOT NULL THEN + IF NEW.eta < (SELECT etd FROM roadmap WHERE id = NEW.roadmapFk) THEN + CALL util.throw('Departure time can not be after arrival time'); + END IF; + END IF; END$$ DELIMITER ; diff --git a/db/routines/vn/triggers/roadmapStop_beforeUpdate.sql b/db/routines/vn/triggers/roadmapStop_beforeUpdate.sql index ec4dbe5baa..cff48846ae 100644 --- a/db/routines/vn/triggers/roadmapStop_beforeUpdate.sql +++ b/db/routines/vn/triggers/roadmapStop_beforeUpdate.sql @@ -5,5 +5,12 @@ CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `vn`.`roadmapStop_beforeUpdat BEGIN SET NEW.editorFk = account.myUser_getId(); SET NEW.description = UCASE(NEW.description); + IF (NOT (NEW.roadmapFk <=> OLD.roadmapFk) AND NEW.roadmapFk IS NOT NULL) + OR (NOT (NEW.eta <=> OLD.eta) AND NEW.eta IS NOT NULL) THEN + + IF NEW.eta < (SELECT etd FROM roadmap WHERE id = NEW.roadmapFk) THEN + CALL util.throw('Departure time can not be after arrival time'); + END IF; + END IF; END$$ DELIMITER ; From 3ea67675dad4bb7b9def51ce4acb56367524a352 Mon Sep 17 00:00:00 2001 From: jorgep Date: Thu, 23 Jan 2025 10:53:53 +0100 Subject: [PATCH 076/149] feat: refs #7119 add VehicleType model and update vehicle permissions for delivery roles --- .../11394-brownAsparagus/00-firstScript.sql | 22 ++++++------- modules/route/back/methods/vehicle/filter.js | 32 +++++++------------ modules/route/back/model-config.json | 3 ++ modules/route/back/models/vehicle-type.json | 19 +++++++++++ modules/route/back/models/vehicle.json | 9 ++++++ 5 files changed, 54 insertions(+), 31 deletions(-) create mode 100644 modules/route/back/models/vehicle-type.json diff --git a/db/versions/11394-brownAsparagus/00-firstScript.sql b/db/versions/11394-brownAsparagus/00-firstScript.sql index 51034c86b2..6862627273 100644 --- a/db/versions/11394-brownAsparagus/00-firstScript.sql +++ b/db/versions/11394-brownAsparagus/00-firstScript.sql @@ -1,25 +1,24 @@ USE vn; + INSERT INTO salix.ACL (model, property, accessType, permission, principalType, principalId) VALUES ('Vehicle', 'filter', 'READ', 'ALLOW', 'ROLE', 'administrative'), - ('Vehicle', 'filter', 'READ', 'ALLOW', 'ROLE', 'delivery'), + ('Vehicle', 'filter', 'READ', 'ALLOW', 'ROLE', 'deliveryAssistant'), ('Vehicle', 'find', 'READ', 'ALLOW', 'ROLE', 'administrative'), - ('Vehicle', 'find', 'READ', 'ALLOW', 'ROLE', 'delivery'), + ('Vehicle', 'find', 'READ', 'ALLOW', 'ROLE', 'deliveryAssistant'), ('Vehicle', 'findById', 'READ', 'ALLOW', 'ROLE', 'administrative'), ('Vehicle', 'updateAttributes', 'WRITE', 'ALLOW', 'ROLE', 'administrative'), - ('Vehicle', 'updateAttributes', 'WRITE', 'ALLOW', 'ROLE', 'delivery'), + ('Vehicle', 'updateAttributes', 'WRITE', 'ALLOW', 'ROLE', 'deliveryAssistant'), ('BankPolicy', 'find', 'READ', 'ALLOW', 'ROLE', 'administrative'), - ('BankPolicy', 'find', 'READ', 'ALLOW', 'ROLE', 'delivery'), + ('BankPolicy', 'find', 'READ', 'ALLOW', 'ROLE', 'deliveryAssistant'), ('VehicleState', 'find', 'READ', 'ALLOW', 'ROLE', 'administrative'), - ('VehicleState', 'find', 'READ', 'ALLOW', 'ROLE', 'delivery'), + ('VehicleState', 'find', 'READ', 'ALLOW', 'ROLE', 'deliveryAssistant'), ('Ppe', 'find', 'READ', 'ALLOW', 'ROLE', 'administrative' ), - ('Ppe', 'find', 'READ', 'ALLOW', 'ROLE', 'delivery' ), + ('Ppe', 'find', 'READ', 'ALLOW', 'ROLE', 'deliveryAssistant' ), ('Vehicle', 'deleteById', 'WRITE', 'ALLOW', 'ROLE', 'administrative'), - ('Vehicle', 'deleteById', 'WRITE', 'ALLOW', 'ROLE', 'delivery'), + ('Vehicle', 'deleteById', 'WRITE', 'ALLOW', 'ROLE', 'deliveryAssistant'), + ('VehicleType', 'find', 'READ', 'ALLOW', 'ROLE', 'employee'), ('Vehicle', '__get__active', 'READ', 'ALLOW', 'ROLE', 'employee'); -ALTER TABLE vehicle ADD COLUMN importCooler decimal(10,2) DEFAULT NULL; - - CREATE TABLE IF NOT EXISTS vehicleType ( id INT(11) PRIMARY KEY AUTO_INCREMENT, name VARCHAR(45) NOT NULL @@ -30,7 +29,8 @@ INSERT IGNORE INTO vehicleType (id, name) (2, 'furgoneta'), (3, 'cabeza tractora'), (4, 'remolque'); -ALTER TABLE vehicle ADD COLUMN vehicleTypeFk INT(11) DEFAULT 1; +ALTER TABLE vehicle ADD COLUMN importCooler decimal(10,2) DEFAULT NULL; +ALTER TABLE vehicle ADD COLUMN vehicleTypeFk INT(11) DEFAULT 1; ALTER TABLE vehicle ADD CONSTRAINT fk_vehicle_vehicleType FOREIGN KEY (vehicleTypeFk) REFERENCES vehicleType(id); diff --git a/modules/route/back/methods/vehicle/filter.js b/modules/route/back/methods/vehicle/filter.js index 11cc4d82af..7e8fb36415 100644 --- a/modules/route/back/methods/vehicle/filter.js +++ b/modules/route/back/methods/vehicle/filter.js @@ -43,8 +43,8 @@ module.exports = Self => { arg: 'countryCodeFk', type: 'string' }, { - arg: 'isKmTruckRate', - type: 'boolean' + arg: 'vehicleTypeFk', + type: 'number' }, { arg: 'vehicleStateFk', type: 'number' @@ -69,28 +69,19 @@ module.exports = Self => { switch (param) { case 'search': return {or: [{'v.id': value}, {numberPlate: {like: `%${value}%`}}]}; - case 'id': - return {id: value}; case 'description': - return {description: {like: `%${value}%`}}; - case 'companyFk': - return {companyFk: value}; case 'tradeMark': - return {tradeMark: {like: `%${value}%`}}; case 'numberPlate': - return {numberPlate: {like: `%${value}%`}}; - case 'warehouseFk': - return {warehouseFk: value}; case 'chassis': - return {chassis: {like: `%${value}%`}}; case 'leasing': - return {leasing: {like: `%${value}%`}}; + return {[param]: {like: `%${value}%`}}; + case 'id': + case 'companyFk': + case 'warehouseFk': case 'countryCodeFk': - return {countryCodeFk: value}; - case 'isKmTruckRate': - return {isKmTruckRate: value}; case 'vehicleStateFk': - return {vehicleStateFk: value}; + case 'vehicleTypeFk': + return {[param]: value}; } }) || {}; @@ -107,11 +98,12 @@ module.exports = Self => { v.countryCodeFk, v.chassis, v.leasing, - v.isKmTruckRate, - w.name as warehouse, - c.code as company, + vt.name type, + w.name warehouse, + c.code company, sub.state FROM vehicle v + JOIN vehicleType vt ON vt.id = v.vehicleTypeFk LEFT JOIN warehouse w ON w.id = v.warehouseFk LEFT JOIN company c ON c.id = v.companyFk LEFT JOIN ( diff --git a/modules/route/back/model-config.json b/modules/route/back/model-config.json index 16e6d69677..3a7c9e06b5 100644 --- a/modules/route/back/model-config.json +++ b/modules/route/back/model-config.json @@ -47,6 +47,9 @@ "VehicleState": { "dataSource": "vn" }, + "VehicleType": { + "dataSource": "vn" + }, "RoutesMonitor": { "dataSource": "vn" } diff --git a/modules/route/back/models/vehicle-type.json b/modules/route/back/models/vehicle-type.json new file mode 100644 index 0000000000..34beb6dfba --- /dev/null +++ b/modules/route/back/models/vehicle-type.json @@ -0,0 +1,19 @@ +{ + "name": "VehicleType", + "base": "VnModel", + "options": { + "mysql": { + "table": "vehicleType" + } + }, + "properties": { + "id": { + "type": "number", + "id": true, + "description": "Identifier" + }, + "name": { + "type": "string" + } + } +} \ No newline at end of file diff --git a/modules/route/back/models/vehicle.json b/modules/route/back/models/vehicle.json index e6d58de99e..95eac7251c 100644 --- a/modules/route/back/models/vehicle.json +++ b/modules/route/back/models/vehicle.json @@ -53,6 +53,9 @@ }, "ppeFk": { "type": "number" + }, + "vehicleTypeFk": { + "type": "number" } }, "relations": { @@ -102,6 +105,12 @@ "model": "Ppe", "foreignKey": "id", "property": "ppeFk" + }, + "type": { + "type": "hasOne", + "model": "VehicleType", + "foreignKey": "id", + "property": "vehicleTypeFk" } }, "scopes": { From 162cd4d69ebe1dc4c803a636375e4e31de151fd2 Mon Sep 17 00:00:00 2001 From: guillermo Date: Thu, 23 Jan 2025 14:54:59 +0100 Subject: [PATCH 077/149] feat: refs #8227 Roadmap major changes --- .../getTimeBetweenRoadmapAddresses.sql | 35 +++++++++++++++++++ .../vn/triggers/roadmap_beforeInsert.sql | 4 +++ .../vn/triggers/roadmap_beforeUpdate.sql | 4 +++ .../11416-goldenTulip/00-firstScript.sql | 7 +++- .../11416-goldenTulip/01-firstScript.sql | 8 ++++- .../11416-goldenTulip/02-firstScript.sql | 7 ++-- .../11416-goldenTulip/03-firstScript.sql | 4 +++ .../11416-goldenTulip/04-firstScript.sql | 2 ++ 8 files changed, 65 insertions(+), 6 deletions(-) create mode 100644 db/routines/vn/functions/getTimeBetweenRoadmapAddresses.sql create mode 100644 db/versions/11416-goldenTulip/03-firstScript.sql create mode 100644 db/versions/11416-goldenTulip/04-firstScript.sql diff --git a/db/routines/vn/functions/getTimeBetweenRoadmapAddresses.sql b/db/routines/vn/functions/getTimeBetweenRoadmapAddresses.sql new file mode 100644 index 0000000000..5a647d51b7 --- /dev/null +++ b/db/routines/vn/functions/getTimeBetweenRoadmapAddresses.sql @@ -0,0 +1,35 @@ +DELIMITER $$ +CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `vn`.`getTimeBetweenRoadmapAddresses`( + vRoadmapAddressFrom INT, + vRoadmapAddressTo INT +) + RETURNS int(11) + DETERMINISTIC +BEGIN +/** + * Retorna el tiempo en segundos que se suele tardar en ir + * de un punto de distribución a otro en una ruta troncal. + * + * @param vRoadmapAddressFrom Punto de distribución de origen + * @param vRoadmapAddressTo Punto de distribución de destino + * @return Tiempo en segundos + */ + DECLARE vSeconds INT; + + WITH wRoadmap AS ( + SELECT ROW_NUMBER() OVER(PARTITION BY roadmapFk ORDER BY eta) `sequence`, + roadmapFk, + roadmapAddressFk, + eta + FROM vn.roadmapStop + ) + SELECT AVG(TIME_TO_SEC(TIMEDIFF(rTo.eta, rFrom.eta))) INTO vSeconds + FROM wRoadmap rFrom + JOIN wRoadmap rTo ON rTo.roadmapFk = rFrom.roadmapFk + WHERE rFrom.roadmapAddressFk = vRoadmapAddressFrom + AND rTo.roadmapAddressFk = vRoadmapAddressTo + AND rFrom.`sequence` + 1 = rTo.`sequence`; + + RETURN vSeconds; +END$$ +DELIMITER ; diff --git a/db/routines/vn/triggers/roadmap_beforeInsert.sql b/db/routines/vn/triggers/roadmap_beforeInsert.sql index 118653d44f..884fe0bbcf 100644 --- a/db/routines/vn/triggers/roadmap_beforeInsert.sql +++ b/db/routines/vn/triggers/roadmap_beforeInsert.sql @@ -4,6 +4,10 @@ CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `vn`.`roadmap_beforeInsert` FOR EACH ROW BEGIN SET NEW.editorFk = account.myUser_getId(); + IF NEW.etd > NEW.eta THEN + CALL util.throw('Departure time can not be after arrival time'); + END IF; + IF NEW.tractorPlate IS NOT NULL THEN CALL vehicle_checkNumberPlate(NEW.tractorPlate, NULL); END IF; diff --git a/db/routines/vn/triggers/roadmap_beforeUpdate.sql b/db/routines/vn/triggers/roadmap_beforeUpdate.sql index a60b1e892e..96eec2aaf9 100644 --- a/db/routines/vn/triggers/roadmap_beforeUpdate.sql +++ b/db/routines/vn/triggers/roadmap_beforeUpdate.sql @@ -4,6 +4,10 @@ CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `vn`.`roadmap_beforeUpdate` FOR EACH ROW BEGIN SET NEW.editorFk = account.myUser_getId(); + IF NEW.etd > NEW.eta THEN + CALL util.throw('Departure time can not be after arrival time'); + END IF; + IF NEW.tractorPlate IS NOT NULL THEN CALL vehicle_checkNumberPlate(NEW.tractorPlate, NULL); END IF; diff --git a/db/versions/11416-goldenTulip/00-firstScript.sql b/db/versions/11416-goldenTulip/00-firstScript.sql index d06f25493b..e2962592cf 100644 --- a/db/versions/11416-goldenTulip/00-firstScript.sql +++ b/db/versions/11416-goldenTulip/00-firstScript.sql @@ -1,5 +1,10 @@ ALTER TABLE vn.roadmap + COMMENT='Rutas troncales (trailers)', MODIFY COLUMN m3 int(10) unsigned DEFAULT NULL NULL COMMENT 'Capacidad máxima del remolque', + MODIFY COLUMN trailerPlate varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci DEFAULT NULL NULL, + MODIFY COLUMN etd datetime NOT NULL COMMENT 'Tiempo estimado de salida', CHANGE driver1Fk driverFk int(10) unsigned DEFAULT NULL NULL COMMENT 'Conductor principal' AFTER driverName, CHANGE driver2Fk codriverFk int(10) unsigned DEFAULT NULL NULL COMMENT 'Copiloto' AFTER driverFk, - CHANGE userFk editorFk int(10) unsigned DEFAULT NULL NULL AFTER m3; \ No newline at end of file + CHANGE userFk editorFk int(10) unsigned DEFAULT NULL NULL AFTER m3, + ADD eta datetime NOT NULL AFTER etd COMMENT 'Tiempo estimado de llegada', + ADD roadmapAddressFk int(11) NOT NULL AFTER `name`; diff --git a/db/versions/11416-goldenTulip/01-firstScript.sql b/db/versions/11416-goldenTulip/01-firstScript.sql index 76b69387c4..58cd44f0dd 100644 --- a/db/versions/11416-goldenTulip/01-firstScript.sql +++ b/db/versions/11416-goldenTulip/01-firstScript.sql @@ -1 +1,7 @@ -ALTER TABLE vn.roadmapStop CHANGE userFk editorFk int(10) unsigned DEFAULT NULL NULL; \ No newline at end of file +UPDATE vn.roadmap + SET roadmapAddressFk = (SELECT MIN(addressFk) FROM vn.roadmapAddress), + eta = etd + INTERVAL 1 DAY; + +ALTER TABLE vn.roadmap + ADD CONSTRAINT roadmap_roadmapAddress_FK FOREIGN KEY (roadmapAddressFk) + REFERENCES vn.roadmapAddress(addressFk) ON DELETE RESTRICT ON UPDATE CASCADE; diff --git a/db/versions/11416-goldenTulip/02-firstScript.sql b/db/versions/11416-goldenTulip/02-firstScript.sql index 89833fe8b4..8713c50908 100644 --- a/db/versions/11416-goldenTulip/02-firstScript.sql +++ b/db/versions/11416-goldenTulip/02-firstScript.sql @@ -1,4 +1,3 @@ -ALTER TABLE vn.route - ADD roadmapStopFk int(11) NULL, - ADD CONSTRAINT route_roadmapStop_FK FOREIGN KEY (roadmapStopFk) REFERENCES vn.roadmapStop(id) ON DELETE RESTRICT ON UPDATE CASCADE, - CHANGE editorFk editorFk int(10) unsigned DEFAULT NULL NULL AFTER roadmapStopFk; +ALTER TABLE vn.roadmapStop + CHANGE userFk editorFk int(10) unsigned DEFAULT NULL NULL, + CHANGE addressFk roadmapAddressFk int(11) DEFAULT NULL NULL; diff --git a/db/versions/11416-goldenTulip/03-firstScript.sql b/db/versions/11416-goldenTulip/03-firstScript.sql new file mode 100644 index 0000000000..89833fe8b4 --- /dev/null +++ b/db/versions/11416-goldenTulip/03-firstScript.sql @@ -0,0 +1,4 @@ +ALTER TABLE vn.route + ADD roadmapStopFk int(11) NULL, + ADD CONSTRAINT route_roadmapStop_FK FOREIGN KEY (roadmapStopFk) REFERENCES vn.roadmapStop(id) ON DELETE RESTRICT ON UPDATE CASCADE, + CHANGE editorFk editorFk int(10) unsigned DEFAULT NULL NULL AFTER roadmapStopFk; diff --git a/db/versions/11416-goldenTulip/04-firstScript.sql b/db/versions/11416-goldenTulip/04-firstScript.sql new file mode 100644 index 0000000000..588810ded9 --- /dev/null +++ b/db/versions/11416-goldenTulip/04-firstScript.sql @@ -0,0 +1,2 @@ +ALTER TABLE vn.roadmapAddress + COMMENT='Direcciones de los troncales o también llamados puntos de distribución'; From 3a449896cdbe15900c8021100d301405cb1481b7 Mon Sep 17 00:00:00 2001 From: jorgep Date: Thu, 23 Jan 2025 18:02:53 +0100 Subject: [PATCH 078/149] feat: refs #7119 update vehicle permissions and enhance vehicle model with new fields --- db/versions/11394-brownAsparagus/00-firstScript.sql | 13 +++++++++---- modules/route/back/models/vehicle.json | 6 ++++++ 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/db/versions/11394-brownAsparagus/00-firstScript.sql b/db/versions/11394-brownAsparagus/00-firstScript.sql index 6862627273..13b6cfa0dd 100644 --- a/db/versions/11394-brownAsparagus/00-firstScript.sql +++ b/db/versions/11394-brownAsparagus/00-firstScript.sql @@ -6,19 +6,24 @@ INSERT INTO salix.ACL (model, property, accessType, permission, principalType, p ('Vehicle', 'find', 'READ', 'ALLOW', 'ROLE', 'administrative'), ('Vehicle', 'find', 'READ', 'ALLOW', 'ROLE', 'deliveryAssistant'), ('Vehicle', 'findById', 'READ', 'ALLOW', 'ROLE', 'administrative'), + ('Vehicle', 'findById', 'READ', 'ALLOW', 'ROLE', 'deliveryAssistant'), + ('Vehicle', '__get__active', 'READ', 'ALLOW', 'ROLE', 'employee'), ('Vehicle', 'updateAttributes', 'WRITE', 'ALLOW', 'ROLE', 'administrative'), ('Vehicle', 'updateAttributes', 'WRITE', 'ALLOW', 'ROLE', 'deliveryAssistant'), + ('Vehicle', 'deleteById', 'WRITE', 'ALLOW', 'ROLE', 'administrative'), + ('Vehicle', 'deleteById', 'WRITE', 'ALLOW', 'ROLE', 'deliveryAssistant'), + ('Vehicle', 'create', 'WRITE', 'ALLOW', 'ROLE', 'administrative'), + ('Vehicle', 'create', 'WRITE', 'ALLOW', 'ROLE', 'deliveryAssistant'), ('BankPolicy', 'find', 'READ', 'ALLOW', 'ROLE', 'administrative'), ('BankPolicy', 'find', 'READ', 'ALLOW', 'ROLE', 'deliveryAssistant'), ('VehicleState', 'find', 'READ', 'ALLOW', 'ROLE', 'administrative'), ('VehicleState', 'find', 'READ', 'ALLOW', 'ROLE', 'deliveryAssistant'), ('Ppe', 'find', 'READ', 'ALLOW', 'ROLE', 'administrative' ), ('Ppe', 'find', 'READ', 'ALLOW', 'ROLE', 'deliveryAssistant' ), - ('Vehicle', 'deleteById', 'WRITE', 'ALLOW', 'ROLE', 'administrative'), - ('Vehicle', 'deleteById', 'WRITE', 'ALLOW', 'ROLE', 'deliveryAssistant'), ('VehicleType', 'find', 'READ', 'ALLOW', 'ROLE', 'employee'), - ('Vehicle', '__get__active', 'READ', 'ALLOW', 'ROLE', 'employee'); - + ('DeliveryPoint', 'find', 'READ', 'ALLOW', 'ROLE', 'deliveryAssistant'), + ('DeliveryPoint', 'find', 'READ', 'ALLOW', 'ROLE', 'administrative'); + CREATE TABLE IF NOT EXISTS vehicleType ( id INT(11) PRIMARY KEY AUTO_INCREMENT, name VARCHAR(45) NOT NULL diff --git a/modules/route/back/models/vehicle.json b/modules/route/back/models/vehicle.json index 95eac7251c..d64f3df794 100644 --- a/modules/route/back/models/vehicle.json +++ b/modules/route/back/models/vehicle.json @@ -48,6 +48,9 @@ "import": { "type": "number" }, + "importCooler": { + "type": "number" + }, "vin": { "type": "string" }, @@ -56,6 +59,9 @@ }, "vehicleTypeFk": { "type": "number" + }, + "deliveryPointFk": { + "type": "number" } }, "relations": { From 306eb6a0599490a82672be7ae8ab18aa377efab3 Mon Sep 17 00:00:00 2001 From: guillermo Date: Fri, 24 Jan 2025 07:26:25 +0100 Subject: [PATCH 079/149] feat: refs #8227 Roadmap fix version --- db/dump/fixtures.before.sql | 10 +++++----- .../11416-goldenTulip/00-firstScript.sql | 12 +++--------- .../11416-goldenTulip/01-firstScript.sql | 18 ++++++++++++------ .../11416-goldenTulip/02-firstScript.sql | 16 +++++++++++++--- .../11416-goldenTulip/03-firstScript.sql | 7 +++---- .../11416-goldenTulip/04-firstScript.sql | 6 ++++-- .../11416-goldenTulip/05-firstScript.sql | 2 ++ 7 files changed, 42 insertions(+), 29 deletions(-) create mode 100644 db/versions/11416-goldenTulip/05-firstScript.sql diff --git a/db/dump/fixtures.before.sql b/db/dump/fixtures.before.sql index cc1a9fc6f1..eb11264e70 100644 --- a/db/dump/fixtures.before.sql +++ b/db/dump/fixtures.before.sql @@ -2749,13 +2749,13 @@ INSERT INTO `vn`.`roadmapAddress` (`addressFk`) (3), (4); -INSERT INTO `vn`.`roadmap` (`id`, `name`, `tractorPlate`, `trailerPlate`, `phone`, `supplierFk`, `etd`, `observations`, `editorFk`, `price`, `driverName`) +INSERT INTO `vn`.`roadmap` (`id`, `name`, `tractorPlate`, `trailerPlate`, `phone`, `supplierFk`, `etd`, `eta`, `observations`, `editorFk`, `price`, `driverName`) VALUES - (1, 'val-algemesi', '1234-BCD', '9876-BCD', '111111111', 1, util.VN_NOW(), 'this is test observation', 1, 15, 'Batman'), - (2, 'alg-valencia', '2345-CDF', '8765-BCD', '111111111', 1, util.VN_NOW(), 'test observation', 1, 20, 'Robin'), - (3, 'alz-algemesi', '3456-DFG', '7654-BCD', '222222222', 2, DATE_ADD(util.VN_NOW(), INTERVAL 2 DAY), 'observations...', 2, 25, 'Driverman'); + (1, 'val-algemesi', '1234-BCD', '9876-BCD', '111111111', 1, util.VN_NOW(), DATE_ADD(util.VN_NOW(), INTERVAL 2 DAY), 'this is test observation', 1, 15, 'Batman'), + (2, 'alg-valencia', '2345-CDF', '8765-BCD', '111111111', 1, util.VN_NOW(), DATE_ADD(util.VN_NOW(), INTERVAL 5 DAY), 'test observation', 1, 20, 'Robin'), + (3, 'alz-algemesi', '3456-DFG', '7654-BCD', '222222222', 2, DATE_ADD(util.VN_NOW(), INTERVAL 3 DAY), DATE_ADD(util.VN_NOW(), INTERVAL 6 DAY), 'observations...', 2, 25, 'Driverman'); -INSERT INTO `vn`.`roadmapStop` (`id`, `roadmapFk`, `addressFk`, `eta`, `description`, `editorFk`) +INSERT INTO `vn`.`roadmapStop` (`id`, `roadmapFk`, `roadmapAddressFk`, `eta`, `description`, `editorFk`) VALUES (1, 1, 1, DATE_ADD(util.VN_NOW(), INTERVAL 1 DAY), 'Best truck in fleet', 1), (2, 1, 2, DATE_ADD(util.VN_NOW(), INTERVAL '1 2' DAY_HOUR), 'Second truck in fleet', 1), diff --git a/db/versions/11416-goldenTulip/00-firstScript.sql b/db/versions/11416-goldenTulip/00-firstScript.sql index e2962592cf..aa410c52f9 100644 --- a/db/versions/11416-goldenTulip/00-firstScript.sql +++ b/db/versions/11416-goldenTulip/00-firstScript.sql @@ -1,10 +1,4 @@ ALTER TABLE vn.roadmap - COMMENT='Rutas troncales (trailers)', - MODIFY COLUMN m3 int(10) unsigned DEFAULT NULL NULL COMMENT 'Capacidad máxima del remolque', - MODIFY COLUMN trailerPlate varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci DEFAULT NULL NULL, - MODIFY COLUMN etd datetime NOT NULL COMMENT 'Tiempo estimado de salida', - CHANGE driver1Fk driverFk int(10) unsigned DEFAULT NULL NULL COMMENT 'Conductor principal' AFTER driverName, - CHANGE driver2Fk codriverFk int(10) unsigned DEFAULT NULL NULL COMMENT 'Copiloto' AFTER driverFk, - CHANGE userFk editorFk int(10) unsigned DEFAULT NULL NULL AFTER m3, - ADD eta datetime NOT NULL AFTER etd COMMENT 'Tiempo estimado de llegada', - ADD roadmapAddressFk int(11) NOT NULL AFTER `name`; + DROP FOREIGN KEY roadmap_worker_FK_2, + DROP FOREIGN KEY roadmap_worker_FK, + DROP FOREIGN KEY roadmap_ibfk_2; diff --git a/db/versions/11416-goldenTulip/01-firstScript.sql b/db/versions/11416-goldenTulip/01-firstScript.sql index 58cd44f0dd..68c369800f 100644 --- a/db/versions/11416-goldenTulip/01-firstScript.sql +++ b/db/versions/11416-goldenTulip/01-firstScript.sql @@ -1,7 +1,13 @@ -UPDATE vn.roadmap - SET roadmapAddressFk = (SELECT MIN(addressFk) FROM vn.roadmapAddress), - eta = etd + INTERVAL 1 DAY; - ALTER TABLE vn.roadmap - ADD CONSTRAINT roadmap_roadmapAddress_FK FOREIGN KEY (roadmapAddressFk) - REFERENCES vn.roadmapAddress(addressFk) ON DELETE RESTRICT ON UPDATE CASCADE; + COMMENT='Rutas troncales (trailers)', + MODIFY COLUMN m3 int(10) unsigned DEFAULT NULL NULL COMMENT 'Capacidad máxima del remolque', + MODIFY COLUMN trailerPlate varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci DEFAULT NULL NULL, + MODIFY COLUMN etd datetime NOT NULL COMMENT 'Tiempo estimado de salida', + ADD eta datetime NOT NULL COMMENT 'Tiempo estimado de llegada' AFTER etd, + ADD roadmapAddressFk int(11) NOT NULL AFTER `name`; + +-- Separamos los CHANGE por que si no arriba no se aplican +ALTER TABLE vn.roadmap + CHANGE driver1Fk driverFk int(10) unsigned DEFAULT NULL NULL COMMENT 'Conductor principal' AFTER driverName, + CHANGE driver2Fk codriverFk int(10) unsigned DEFAULT NULL NULL COMMENT 'Copiloto' AFTER driverFk, + CHANGE userFk editorFk int(10) unsigned DEFAULT NULL NULL AFTER m3; \ No newline at end of file diff --git a/db/versions/11416-goldenTulip/02-firstScript.sql b/db/versions/11416-goldenTulip/02-firstScript.sql index 8713c50908..f99334e9b9 100644 --- a/db/versions/11416-goldenTulip/02-firstScript.sql +++ b/db/versions/11416-goldenTulip/02-firstScript.sql @@ -1,3 +1,13 @@ -ALTER TABLE vn.roadmapStop - CHANGE userFk editorFk int(10) unsigned DEFAULT NULL NULL, - CHANGE addressFk roadmapAddressFk int(11) DEFAULT NULL NULL; +UPDATE vn.roadmap + SET roadmapAddressFk = (SELECT MIN(addressFk) FROM vn.roadmapAddress), + eta = etd + INTERVAL 1 DAY; + +ALTER TABLE vn.roadmap + ADD CONSTRAINT roadmap_roadmapAddress_FK FOREIGN KEY (roadmapAddressFk) + REFERENCES vn.roadmapAddress(addressFk) ON DELETE RESTRICT ON UPDATE CASCADE, + ADD CONSTRAINT roadmap_driver_FK FOREIGN KEY (driverFk) + REFERENCES vn.worker(id) ON DELETE RESTRICT ON UPDATE CASCADE, + ADD CONSTRAINT roadmap_driver_FK2 FOREIGN KEY (codriverFk) + REFERENCES vn.worker(id) ON DELETE RESTRICT ON UPDATE CASCADE, + ADD CONSTRAINT roadmap_user_Fk FOREIGN KEY (editorFk) + REFERENCES account.user(id) ON DELETE RESTRICT ON UPDATE CASCADE; diff --git a/db/versions/11416-goldenTulip/03-firstScript.sql b/db/versions/11416-goldenTulip/03-firstScript.sql index 89833fe8b4..8713c50908 100644 --- a/db/versions/11416-goldenTulip/03-firstScript.sql +++ b/db/versions/11416-goldenTulip/03-firstScript.sql @@ -1,4 +1,3 @@ -ALTER TABLE vn.route - ADD roadmapStopFk int(11) NULL, - ADD CONSTRAINT route_roadmapStop_FK FOREIGN KEY (roadmapStopFk) REFERENCES vn.roadmapStop(id) ON DELETE RESTRICT ON UPDATE CASCADE, - CHANGE editorFk editorFk int(10) unsigned DEFAULT NULL NULL AFTER roadmapStopFk; +ALTER TABLE vn.roadmapStop + CHANGE userFk editorFk int(10) unsigned DEFAULT NULL NULL, + CHANGE addressFk roadmapAddressFk int(11) DEFAULT NULL NULL; diff --git a/db/versions/11416-goldenTulip/04-firstScript.sql b/db/versions/11416-goldenTulip/04-firstScript.sql index 588810ded9..89833fe8b4 100644 --- a/db/versions/11416-goldenTulip/04-firstScript.sql +++ b/db/versions/11416-goldenTulip/04-firstScript.sql @@ -1,2 +1,4 @@ -ALTER TABLE vn.roadmapAddress - COMMENT='Direcciones de los troncales o también llamados puntos de distribución'; +ALTER TABLE vn.route + ADD roadmapStopFk int(11) NULL, + ADD CONSTRAINT route_roadmapStop_FK FOREIGN KEY (roadmapStopFk) REFERENCES vn.roadmapStop(id) ON DELETE RESTRICT ON UPDATE CASCADE, + CHANGE editorFk editorFk int(10) unsigned DEFAULT NULL NULL AFTER roadmapStopFk; diff --git a/db/versions/11416-goldenTulip/05-firstScript.sql b/db/versions/11416-goldenTulip/05-firstScript.sql new file mode 100644 index 0000000000..588810ded9 --- /dev/null +++ b/db/versions/11416-goldenTulip/05-firstScript.sql @@ -0,0 +1,2 @@ +ALTER TABLE vn.roadmapAddress + COMMENT='Direcciones de los troncales o también llamados puntos de distribución'; From 6da004e7cf1e0e908bfbe08fffec8c32059723e1 Mon Sep 17 00:00:00 2001 From: Jon Date: Fri, 24 Jan 2025 09:29:58 +0100 Subject: [PATCH 080/149] fix: fixed shipped date when it is null --- modules/ticket/back/methods/ticket/priceDifference.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/modules/ticket/back/methods/ticket/priceDifference.js b/modules/ticket/back/methods/ticket/priceDifference.js index 7db03e2685..7e4fe82835 100644 --- a/modules/ticket/back/methods/ticket/priceDifference.js +++ b/modules/ticket/back/methods/ticket/priceDifference.js @@ -108,7 +108,10 @@ module.exports = Self => { // Get items movable const ticketOrigin = await models.Ticket.findById(args.id, null, myOptions); - const differenceShipped = ticketOrigin.shipped.getTime() > args.shipped.getTime(); + let shipped = ticketOrigin.shipped ?? ticketOrigin.updated; + + const differenceShipped = shipped.getTime() > args.shipped.getTime(); + const differenceWarehouse = ticketOrigin.warehouseFk != args.warehouseId; salesObj.haveDifferences = differenceShipped || differenceWarehouse; From 3fba81b41e8bc7ae1162dabcd41944fa525e76d3 Mon Sep 17 00:00:00 2001 From: jorgep Date: Fri, 24 Jan 2025 10:46:35 +0100 Subject: [PATCH 081/149] feat: refs #7119 add 'id' filter option and enhance bank policy model with dmsFk field --- modules/route/back/methods/vehicle/filter.js | 11 ++++++----- modules/route/back/models/bank-policy.json | 3 +++ 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/modules/route/back/methods/vehicle/filter.js b/modules/route/back/methods/vehicle/filter.js index 7e8fb36415..cb55f5f3ca 100644 --- a/modules/route/back/methods/vehicle/filter.js +++ b/modules/route/back/methods/vehicle/filter.js @@ -69,13 +69,14 @@ module.exports = Self => { switch (param) { case 'search': return {or: [{'v.id': value}, {numberPlate: {like: `%${value}%`}}]}; + case 'id': + return {'v.id': value}; case 'description': case 'tradeMark': case 'numberPlate': case 'chassis': case 'leasing': return {[param]: {like: `%${value}%`}}; - case 'id': case 'companyFk': case 'warehouseFk': case 'countryCodeFk': @@ -83,9 +84,9 @@ module.exports = Self => { case 'vehicleTypeFk': return {[param]: value}; } - }) || {}; + }); - const myFilter = mergeFilters(filter, {where}); + filter = mergeFilters(filter, {where}); const stmt = new ParameterizedSQL(` SELECT v.id, @@ -116,9 +117,9 @@ module.exports = Self => { ) sub ON sub.vehicleFk = v.id AND sub.rn = 1 `); - const sqlWhere = conn.makeWhere(myFilter.where); + const sqlWhere = conn.makeWhere(filter.where); stmt.merge(sqlWhere); - stmt.merge(conn.makePagination(myFilter)); + stmt.merge(conn.makePagination(filter)); const sql = ParameterizedSQL.join([stmt], ';'); diff --git a/modules/route/back/models/bank-policy.json b/modules/route/back/models/bank-policy.json index edbc636ffa..55a409a671 100644 --- a/modules/route/back/models/bank-policy.json +++ b/modules/route/back/models/bank-policy.json @@ -13,6 +13,9 @@ }, "ref": { "type": "string" + }, + "dmsFk": { + "type": "number" } } } \ No newline at end of file From e9f1e28ac0dcadf5b93848e1623a04d5ed474147 Mon Sep 17 00:00:00 2001 From: guillermo Date: Fri, 24 Jan 2025 11:20:16 +0100 Subject: [PATCH 082/149] feat: refs #8227 Added roadmap_cloneDay --- .../vn/procedures/roadmap_cloneDay.sql | 71 +++++++++++++++++++ .../vn/triggers/roadmap_beforeInsert.sql | 1 + .../vn/triggers/roadmap_beforeUpdate.sql | 1 + .../11416-goldenTulip/01-firstScript.sql | 1 + .../11416-goldenTulip/03-firstScript.sql | 6 +- 5 files changed, 79 insertions(+), 1 deletion(-) create mode 100644 db/routines/vn/procedures/roadmap_cloneDay.sql diff --git a/db/routines/vn/procedures/roadmap_cloneDay.sql b/db/routines/vn/procedures/roadmap_cloneDay.sql new file mode 100644 index 0000000000..51d6ba1aba --- /dev/null +++ b/db/routines/vn/procedures/roadmap_cloneDay.sql @@ -0,0 +1,71 @@ +DELIMITER $$ +CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `vn`.`roadmap_cloneDay`( + vDateToCopy DATE, + vDateToPaste DATE +) +BEGIN +/** + * Clona roadmaps de un día a otro, incluyendo las paradas y sin algunos + * campos de la tabla principal, como matrículas, conductores... + * + * @param vDateToCopy Fecha para copiar + * @param vDateToPaste Fecha para pegar + */ + DECLARE vDaysDiff INT; + DECLARE vNextRoadmapId INT; + + DECLARE EXIT HANDLER FOR SQLEXCEPTION + BEGIN + ROLLBACK; + RESIGNAL; + END; + + SET vDaysDiff = DATEDIFF(vDateToPaste, vDateToCopy); + + IF vDaysDiff IS NULL OR NOT vDaysDiff THEN + CALL util.throw("No valid dates"); + END IF; + + START TRANSACTION; + + SELECT AUTO_INCREMENT INTO vNextRoadmapId + FROM information_schema.tables + WHERE table_name = 'roadmap' + AND table_schema = 'vn'; + + CREATE OR REPLACE TEMPORARY TABLE tmp.roadmapsToCopy + ENGINE = MEMORY + SELECT ROW_NUMBER() OVER(ORDER BY id) rowOrder, + id, + `name`, + roadmapAddressFk, + etd, + eta, + observations, + price + FROM roadmap + WHERE etd BETWEEN vDateToCopy AND util.dayEnd(vDateToCopy); + + INSERT INTO roadmap (`name`, roadmapAddressFk, etd, eta, observations, price) + SELECT `name`, + roadmapAddressFk, + etd + INTERVAL vDaysDiff DAY, + eta + INTERVAL vDaysDiff DAY, + observations, + price + FROM tmp.roadmapsToCopy; + + INSERT INTO roadmapStop (roadmapFk, roadmapAddressFk, eta, `description`, bufferFk) + SELECT (rtc.rowOrder - 1) + vNextRoadmapId, + rs.roadmapAddressFk, + rs.eta + INTERVAL vDaysDiff DAY, + rs.description, + rs.bufferFk + FROM tmp.roadmapsToCopy rtc + JOIN roadmapStop rs ON rs.roadmapFk = rtc.id; + + COMMIT; + + DROP TEMPORARY TABLE tmp.roadmapsToCopy; +END$$ +DELIMITER ; diff --git a/db/routines/vn/triggers/roadmap_beforeInsert.sql b/db/routines/vn/triggers/roadmap_beforeInsert.sql index 884fe0bbcf..4b0a1c847a 100644 --- a/db/routines/vn/triggers/roadmap_beforeInsert.sql +++ b/db/routines/vn/triggers/roadmap_beforeInsert.sql @@ -14,5 +14,6 @@ BEGIN IF NEW.trailerPlate IS NOT NULL THEN CALL vehicle_checkNumberPlate(NEW.trailerPlate, NULL); END IF; + SET NEW.name = UCASE(NEW.name); END$$ DELIMITER ; \ No newline at end of file diff --git a/db/routines/vn/triggers/roadmap_beforeUpdate.sql b/db/routines/vn/triggers/roadmap_beforeUpdate.sql index 96eec2aaf9..1ad547f556 100644 --- a/db/routines/vn/triggers/roadmap_beforeUpdate.sql +++ b/db/routines/vn/triggers/roadmap_beforeUpdate.sql @@ -14,5 +14,6 @@ BEGIN IF NEW.trailerPlate IS NOT NULL THEN CALL vehicle_checkNumberPlate(NEW.trailerPlate, NULL); END IF; + SET NEW.name = UCASE(NEW.name); END$$ DELIMITER ; \ No newline at end of file diff --git a/db/versions/11416-goldenTulip/01-firstScript.sql b/db/versions/11416-goldenTulip/01-firstScript.sql index 68c369800f..0cd7942297 100644 --- a/db/versions/11416-goldenTulip/01-firstScript.sql +++ b/db/versions/11416-goldenTulip/01-firstScript.sql @@ -3,6 +3,7 @@ ALTER TABLE vn.roadmap MODIFY COLUMN m3 int(10) unsigned DEFAULT NULL NULL COMMENT 'Capacidad máxima del remolque', MODIFY COLUMN trailerPlate varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci DEFAULT NULL NULL, MODIFY COLUMN etd datetime NOT NULL COMMENT 'Tiempo estimado de salida', + MODIFY COLUMN `name` varchar(45) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NULL, ADD eta datetime NOT NULL COMMENT 'Tiempo estimado de llegada' AFTER etd, ADD roadmapAddressFk int(11) NOT NULL AFTER `name`; diff --git a/db/versions/11416-goldenTulip/03-firstScript.sql b/db/versions/11416-goldenTulip/03-firstScript.sql index 8713c50908..4df73139a6 100644 --- a/db/versions/11416-goldenTulip/03-firstScript.sql +++ b/db/versions/11416-goldenTulip/03-firstScript.sql @@ -1,3 +1,7 @@ ALTER TABLE vn.roadmapStop CHANGE userFk editorFk int(10) unsigned DEFAULT NULL NULL, - CHANGE addressFk roadmapAddressFk int(11) DEFAULT NULL NULL; + CHANGE addressFk roadmapAddressFk int(11) DEFAULT NULL NULL, + DROP FOREIGN KEY expeditionTruck_FK_2; + +ALTER TABLE vn.roadmapStop ADD CONSTRAINT roadmapStop_roadmap_FK + FOREIGN KEY (roadmapFk) REFERENCES vn.roadmap(id) ON DELETE CASCADE ON UPDATE CASCADE; From 75b0589561a54024ec5f305cc9209e1f2d244ec6 Mon Sep 17 00:00:00 2001 From: guillermo Date: Fri, 24 Jan 2025 12:34:08 +0100 Subject: [PATCH 083/149] feat: refs #8227 Undo vehicle_checkNumberPlate change and triggers checks --- .../vn/procedures/vehicle_checkNumberPlate.sql | 16 +++++----------- db/routines/vn/triggers/roadmap_beforeInsert.sql | 7 ------- db/routines/vn/triggers/roadmap_beforeUpdate.sql | 7 ------- 3 files changed, 5 insertions(+), 25 deletions(-) diff --git a/db/routines/vn/procedures/vehicle_checkNumberPlate.sql b/db/routines/vn/procedures/vehicle_checkNumberPlate.sql index 613dda3682..b7444cac89 100644 --- a/db/routines/vn/procedures/vehicle_checkNumberPlate.sql +++ b/db/routines/vn/procedures/vehicle_checkNumberPlate.sql @@ -13,18 +13,12 @@ BEGIN */ DECLARE vRegex VARCHAR(45); - IF vCountryCodeFk IS NULL THEN - SET vRegex = '^[A-Z0-9 -]{6,12}$'; - ELSE - SELECT regex INTO vRegex - FROM vehiclePlateRegex - WHERE countryCodeFk = vCountryCodeFk; - END IF; - + SELECT regex INTO vRegex + FROM vehiclePlateRegex + WHERE countryCodeFk = vCountryCodeFk; + IF NOT vNumberPlate REGEXP BINARY (vRegex)THEN - CALL util.throw(CONCAT('La matricula ', vNumberPlate, - ' no es valida', IF(vCountryCodeFk IS NOT NULL, - CONCAT(' para ', vCountryCodeFk), ''))); + CALL util.throw(CONCAT('Error: la matricula ', vNumberPlate, ' no es valida para ',vCountryCodeFk)); END IF; END$$ DELIMITER ; diff --git a/db/routines/vn/triggers/roadmap_beforeInsert.sql b/db/routines/vn/triggers/roadmap_beforeInsert.sql index 4b0a1c847a..9e783e711c 100644 --- a/db/routines/vn/triggers/roadmap_beforeInsert.sql +++ b/db/routines/vn/triggers/roadmap_beforeInsert.sql @@ -7,13 +7,6 @@ BEGIN IF NEW.etd > NEW.eta THEN CALL util.throw('Departure time can not be after arrival time'); END IF; - - IF NEW.tractorPlate IS NOT NULL THEN - CALL vehicle_checkNumberPlate(NEW.tractorPlate, NULL); - END IF; - IF NEW.trailerPlate IS NOT NULL THEN - CALL vehicle_checkNumberPlate(NEW.trailerPlate, NULL); - END IF; SET NEW.name = UCASE(NEW.name); END$$ DELIMITER ; \ No newline at end of file diff --git a/db/routines/vn/triggers/roadmap_beforeUpdate.sql b/db/routines/vn/triggers/roadmap_beforeUpdate.sql index 1ad547f556..4824170ec4 100644 --- a/db/routines/vn/triggers/roadmap_beforeUpdate.sql +++ b/db/routines/vn/triggers/roadmap_beforeUpdate.sql @@ -7,13 +7,6 @@ BEGIN IF NEW.etd > NEW.eta THEN CALL util.throw('Departure time can not be after arrival time'); END IF; - - IF NEW.tractorPlate IS NOT NULL THEN - CALL vehicle_checkNumberPlate(NEW.tractorPlate, NULL); - END IF; - IF NEW.trailerPlate IS NOT NULL THEN - CALL vehicle_checkNumberPlate(NEW.trailerPlate, NULL); - END IF; SET NEW.name = UCASE(NEW.name); END$$ DELIMITER ; \ No newline at end of file From ec7bbd13b131330caad46ebfaa2b81bd5aaa4b2e Mon Sep 17 00:00:00 2001 From: jorgep Date: Fri, 24 Jan 2025 16:37:35 +0100 Subject: [PATCH 084/149] refactor: refs #7119 update vehicle filter logic and improve test cases --- modules/route/back/methods/vehicle/filter.js | 2 - .../back/methods/vehicle/specs/filter.spec.js | 93 ++++++++++--------- 2 files changed, 49 insertions(+), 46 deletions(-) diff --git a/modules/route/back/methods/vehicle/filter.js b/modules/route/back/methods/vehicle/filter.js index ef87c1448e..fa0b847580 100644 --- a/modules/route/back/methods/vehicle/filter.js +++ b/modules/route/back/methods/vehicle/filter.js @@ -71,8 +71,6 @@ module.exports = Self => { return /^\d+$/.test(value) ? {'v.id': value} : {numberPlate: {like: `%${value}%`}}; - case 'id': - return {'v.id': value}; case 'description': case 'tradeMark': case 'numberPlate': diff --git a/modules/route/back/methods/vehicle/specs/filter.spec.js b/modules/route/back/methods/vehicle/specs/filter.spec.js index ab718f06e4..52e0b8a397 100644 --- a/modules/route/back/methods/vehicle/specs/filter.spec.js +++ b/modules/route/back/methods/vehicle/specs/filter.spec.js @@ -1,6 +1,6 @@ const {models} = require('vn-loopback/server/server'); -fdescribe('Vehicle filter()', () => { +describe('Vehicle filter()', () => { const deliveryAssiId = 123; const ctx = beforeAll.getCtx(deliveryAssiId); let options; @@ -30,7 +30,7 @@ fdescribe('Vehicle filter()', () => { expect(searchResult2.numberPlate).toEqual(numberPlate); }); - it('should return the vehicles matching "company"', async() => { + it('should return the vehicles matching "companyFk"', async() => { const company = await models.Company.findOne({where: {code: 'VNL'}}, options); ctx.args = {companyFk: company.id}; const searchResult = await models.Vehicle.filter(ctx, null, options); @@ -64,59 +64,64 @@ fdescribe('Vehicle filter()', () => { ctx.args = {warehouseFk: warehouse.id}; const searchResult = await models.Vehicle.filter(ctx); searchResult.forEach(record => { - expect(record.warehouseFk).toEqual(warehouse.id); + expect(record.warehouse).toEqual(warehouse.name); }); }); - // it('should return the vehicles matching "chassis"', async() => { - // const ctx = { - // args: { - // chassis: 'CH12345', - // } - // }; + it('should return the vehicles matching "chassis"', async() => { + const {chassis} = await models.Vehicle.findById(1, null, options); + ctx.args = {chassis}; + const [searchResult] = await models.Vehicle.filter(ctx); - // const result = await models.Vehicle.filter(ctx); + expect(searchResult.chassis).toEqual(chassis); + }); - // expect(result.length).toBeGreaterThan(0); - // expect(result[0].chassis).toEqual('CH12345'); - // }); + it('should return the vehicles matching "leasing"', async() => { + const leasing = 'Wayne leasing'; + ctx.args = {leasing}; + const searchResult = await models.Vehicle.filter(ctx); + searchResult.forEach(record => { + expect(record.leasing).toEqual(leasing); + }); + }); - // it('should return the vehicles matching "leasing"', async() => { - // const ctx = { - // args: { - // leasing: 'LeasingCompany', - // } - // }; + it('should return the vehicles matching "countryCodeFk"', async() => { + const countryCodeFk = 'ES'; + ctx.args = {countryCodeFk}; - // const result = await models.Vehicle.filter(ctx); + const searchResult = await models.Vehicle.filter(ctx); + searchResult.forEach(record => { + expect(record.countryCodeFk).toEqual(countryCodeFk); + }); + }); - // expect(result.length).toBeGreaterThan(0); - // expect(result[0].leasing).toEqual('LeasingCompany'); - // }); + it('should return the vehicles matching "vehicleTypeFk"', async() => { + const {name, id} = await models.VehicleType.findById(1, null, options); + ctx.args = {vehicleTypeFk: id}; - // it('should return the vehicles matching "countryCodeFk"', async() => { - // const ctx = { - // args: { - // countryCodeFk: 'US', - // } - // }; + const searchResult = await models.Vehicle.filter(ctx); + searchResult.forEach(record => { + expect(record.type).toEqual(name); + }); + }); - // const result = await models.Vehicle.filter(ctx); + it('should return the vehicles matching "vehicleStateFk"', async() => { + const {state, id} = await models.VehicleState.findById(3); + ctx.args = {vehicleStateFk: id}; - // expect(result.length).toBeGreaterThan(0); - // expect(result[0].countryCodeFk).toEqual('US'); - // }); + const searchResult = await models.Vehicle.filter(ctx); + searchResult.forEach(record => { + expect(record.state).toEqual(state); + }); + }); - // it('should return the vehicles matching "vehicleTypeFk"', async() => { - // const ctx = { - // args: { - // vehicleTypeFk: 3, - // } - // }; + it('should return the vehicles matching "description"', async() => { + const {description} = await models.Vehicle.findById(2); + ctx.args = {description}; - // const result = await models.Vehicle.filter(ctx); - - // expect(result.length).toBeGreaterThan(0); - // expect(result[0].vehicleTypeFk).toEqual(3); - // }); + const searchResult = await models.Vehicle.filter(ctx); + searchResult.forEach(record => { + expect(record.description).toEqual(description); + }); + }); }); From fb653c1eca52d3563e5d31d04283d4b28ec7363a Mon Sep 17 00:00:00 2001 From: jorgep Date: Fri, 24 Jan 2025 16:42:10 +0100 Subject: [PATCH 085/149] fix: refs #7119 rollback --- modules/route/back/methods/vehicle/filter.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/route/back/methods/vehicle/filter.js b/modules/route/back/methods/vehicle/filter.js index fa0b847580..ef87c1448e 100644 --- a/modules/route/back/methods/vehicle/filter.js +++ b/modules/route/back/methods/vehicle/filter.js @@ -71,6 +71,8 @@ module.exports = Self => { return /^\d+$/.test(value) ? {'v.id': value} : {numberPlate: {like: `%${value}%`}}; + case 'id': + return {'v.id': value}; case 'description': case 'tradeMark': case 'numberPlate': From 609df986148c5e9e7e526cb8a076ea29d7247d0f Mon Sep 17 00:00:00 2001 From: guillermo Date: Mon, 27 Jan 2025 09:02:37 +0100 Subject: [PATCH 086/149] feat: refs #8227 Added grants --- db/versions/11416-goldenTulip/06-firstScript.sql | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 db/versions/11416-goldenTulip/06-firstScript.sql diff --git a/db/versions/11416-goldenTulip/06-firstScript.sql b/db/versions/11416-goldenTulip/06-firstScript.sql new file mode 100644 index 0000000000..58563cfd5b --- /dev/null +++ b/db/versions/11416-goldenTulip/06-firstScript.sql @@ -0,0 +1,10 @@ +GRANT SELECT ON TABLE vn.roadmap TO 'delivery'; +GRANT SELECT ON TABLE vn.roadmapStop TO 'delivery'; +GRANT SELECT ON TABLE vn.roadmapAddress TO 'delivery'; + +GRANT DELETE, UPDATE, INSERT ON TABLE vn.roadmap TO 'deliveryBoss'; +GRANT DELETE, UPDATE, INSERT ON TABLE vn.roadmapStop TO 'deliveryBoss'; +GRANT DELETE, UPDATE, INSERT ON TABLE vn.roadmapAddress TO 'deliveryBoss'; + +GRANT EXECUTE ON PROCEDURE vn.roadmap_cloneDay TO 'deliveryBoss'; +GRANT EXECUTE ON FUNCTION vn.getTimeBetweenRoadmapAddresses TO 'deliveryBoss'; From 75168eef91c723d99b369c7afe0dca174bad0d4d Mon Sep 17 00:00:00 2001 From: guillermo Date: Mon, 27 Jan 2025 11:04:34 +0100 Subject: [PATCH 087/149] feat: refs #8227 Roadmap changes --- db/routines/vn/procedures/roadmap_cloneDay.sql | 2 +- db/routines/vn/triggers/roadmap_beforeInsert.sql | 3 +++ db/routines/vn/triggers/roadmap_beforeUpdate.sql | 3 +++ db/versions/11416-goldenTulip/01-firstScript.sql | 4 +++- 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/db/routines/vn/procedures/roadmap_cloneDay.sql b/db/routines/vn/procedures/roadmap_cloneDay.sql index 51d6ba1aba..4247b881e8 100644 --- a/db/routines/vn/procedures/roadmap_cloneDay.sql +++ b/db/routines/vn/procedures/roadmap_cloneDay.sql @@ -22,7 +22,7 @@ BEGIN SET vDaysDiff = DATEDIFF(vDateToPaste, vDateToCopy); - IF vDaysDiff IS NULL OR NOT vDaysDiff THEN + IF vDaysDiff IS NULL THEN CALL util.throw("No valid dates"); END IF; diff --git a/db/routines/vn/triggers/roadmap_beforeInsert.sql b/db/routines/vn/triggers/roadmap_beforeInsert.sql index 9e783e711c..1f046ec143 100644 --- a/db/routines/vn/triggers/roadmap_beforeInsert.sql +++ b/db/routines/vn/triggers/roadmap_beforeInsert.sql @@ -8,5 +8,8 @@ BEGIN CALL util.throw('Departure time can not be after arrival time'); END IF; SET NEW.name = UCASE(NEW.name); + IF NEW.`trailerPlate` IS NOT NULL THEN + SET NEW.m3 = (SELECT m3 FROM vehicle WHERE numberPlate = NEW.trailerPlate); + END IF; END$$ DELIMITER ; \ No newline at end of file diff --git a/db/routines/vn/triggers/roadmap_beforeUpdate.sql b/db/routines/vn/triggers/roadmap_beforeUpdate.sql index 4824170ec4..45b0d5e9e0 100644 --- a/db/routines/vn/triggers/roadmap_beforeUpdate.sql +++ b/db/routines/vn/triggers/roadmap_beforeUpdate.sql @@ -8,5 +8,8 @@ BEGIN CALL util.throw('Departure time can not be after arrival time'); END IF; SET NEW.name = UCASE(NEW.name); + IF NOT (NEW.`trailerPlate` <=> OLD.`trailerPlate`) THEN + SET NEW.m3 = (SELECT m3 FROM vehicle WHERE numberPlate = NEW.trailerPlate); + END IF; END$$ DELIMITER ; \ No newline at end of file diff --git a/db/versions/11416-goldenTulip/01-firstScript.sql b/db/versions/11416-goldenTulip/01-firstScript.sql index 0cd7942297..9fa580ef90 100644 --- a/db/versions/11416-goldenTulip/01-firstScript.sql +++ b/db/versions/11416-goldenTulip/01-firstScript.sql @@ -11,4 +11,6 @@ ALTER TABLE vn.roadmap ALTER TABLE vn.roadmap CHANGE driver1Fk driverFk int(10) unsigned DEFAULT NULL NULL COMMENT 'Conductor principal' AFTER driverName, CHANGE driver2Fk codriverFk int(10) unsigned DEFAULT NULL NULL COMMENT 'Copiloto' AFTER driverFk, - CHANGE userFk editorFk int(10) unsigned DEFAULT NULL NULL AFTER m3; \ No newline at end of file + CHANGE userFk editorFk int(10) unsigned DEFAULT NULL NULL AFTER m3; + +CREATE INDEX roadmap_etd_IDX USING BTREE ON vn.roadmap (etd); From ba2333f1802be0fe01ea669dce417441c7c6127a Mon Sep 17 00:00:00 2001 From: jgallego Date: Mon, 27 Jan 2025 15:05:27 +0100 Subject: [PATCH 088/149] refactor: refs #7686 remove unused stored procedures for item shelving and ticket delay --- .../vn/procedures/itemShelvingRadar.sql | 207 ------------------ .../vn/procedures/ticket_DelayTruck.sql | 36 --- .../vn/procedures/ticket_DelayTruckSplit.sql | 59 ----- 3 files changed, 302 deletions(-) delete mode 100644 db/routines/vn/procedures/itemShelvingRadar.sql delete mode 100644 db/routines/vn/procedures/ticket_DelayTruck.sql delete mode 100644 db/routines/vn/procedures/ticket_DelayTruckSplit.sql diff --git a/db/routines/vn/procedures/itemShelvingRadar.sql b/db/routines/vn/procedures/itemShelvingRadar.sql deleted file mode 100644 index 8db3eb09aa..0000000000 --- a/db/routines/vn/procedures/itemShelvingRadar.sql +++ /dev/null @@ -1,207 +0,0 @@ -DELIMITER $$ -CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `vn`.`itemShelvingRadar`( - vSectorFk INT -) -BEGIN -/** - * Calcula la información detallada respecto un sector. - * - * @param vSectorFk Id de sector - */ - DECLARE vCalcVisibleFk INT; - DECLARE vCalcAvailableFk INT; - DECLARE hasFatherSector BOOLEAN; - DECLARE vBuyerFk INT DEFAULT 0; - DECLARE vWarehouseFk INT DEFAULT 0; - DECLARE vSonSectorFk INT; - DECLARE vWorkerFk INT; - - SELECT s.workerFk INTO vWorkerFk - FROM sector s - WHERE s.id = vSectorFk; - - SELECT COUNT(*) INTO hasFatherSector - FROM sector - WHERE sonFk = vSectorFk; - - SELECT warehouseFk, sonFk INTO vWarehouseFk, vSonSectorFk - FROM sector - WHERE id = vSectorFk; - - CALL cache.visible_refresh(vCalcVisibleFk, TRUE, vWarehouseFk); - CALL cache.available_refresh(vCalcAvailableFk, FALSE, vWarehouseFk, util.VN_CURDATE()); - - IF hasFatherSector THEN - CREATE OR REPLACE TEMPORARY TABLE tItemShelvingRadar - (PRIMARY KEY (itemFk)) - ENGINE = MEMORY - SELECT * - FROM ( - SELECT iss.itemFk, - i.longName, - i.size, - i.subName producer, - IFNULL(a.available, 0) available, - SUM(IF(s.sonFk = vSectorFk, IFNULL(iss.visible, 0), 0)) upstairs, - SUM(IF(iss.sectorFk = vSectorFk, IFNULL(iss.visible, 0), 0)) downstairs, - IF(it.isPackaging, NULL, IFNULL(v.visible, 0)) visible, - vSectorFk sectorFk, - ish.isChecked, - sub.isAllChecked - FROM itemShelvingStock iss - JOIN itemShelving ish ON ish.id = iss.itemShelvingFk - LEFT JOIN ( - SELECT itemFk, - IF( - COUNT(*) = SUM(IF(isChecked >= 0, 1, 0)), - TRUE, - FALSE - ) isAllChecked - FROM itemShelving is2 - GROUP BY itemFk - ) sub ON sub.itemFk = ish.itemFk - JOIN sector s ON s.id = iss.sectorFk - JOIN item i ON i.id = iss.itemFk - JOIN itemType it ON it.id = i.typeFk - LEFT JOIN cache.available a ON a.item_id = iss.itemFk - AND a.calc_id = vCalcAvailableFk - LEFT JOIN cache.visible v ON v.item_id = iss.itemFk - AND v.calc_id = vCalcVisibleFk - WHERE vSectorFk IN (iss.sectorFk, s.sonFk) - GROUP BY iss.itemFk - UNION ALL - SELECT v.item_id, - i.longName, - i.size, - i.subName, - IFNULL(a.available, 0), - 0, - 0, - IF(it.isPackaging, NULL, v.visible), - vSectorFk, - NULL, - NULL - FROM cache.visible v - JOIN item i ON i.id = v.item_id - JOIN itemType it ON it.id = i.typeFk - LEFT JOIN itemShelvingStock iss ON iss.itemFk = v.item_id - AND iss.warehouseFk = vWarehouseFk - LEFT JOIN cache.available a ON a.item_id = v.item_id - AND a.calc_id = vCalcAvailableFk - WHERE v.calc_id = vCalcVisibleFk - AND iss.itemFk IS NULL - AND it.isInventory - ) sub - GROUP BY itemFk; - - SELECT ishr.*, - CAST(visible - upstairs - downstairs AS DECIMAL(10, 0)) nicho, - CAST(downstairs - IFNULL(notPickedYed, 0) AS DECIMAL(10, 0)) pendiente - FROM tItemShelvingRadar ishr - JOIN item i ON i.id = ishr.itemFk - LEFT JOIN ( - SELECT s.itemFk, SUM(s.quantity) notPickedYed - FROM ticket t - JOIN ticketStateToday tst ON tst.ticketFk = t.id - JOIN alertLevel al ON al.id = tst.alertLevel - JOIN sale s ON s.ticketFk = t.id - WHERE t.warehouseFk = vWarehouseFk - AND al.code IN ('FREE', 'APPROVED') - GROUP BY s.itemFk - ) sub ON sub.itemFk = ishr.itemFk - ORDER BY i.typeFk, i.longName; - ELSE - CREATE OR REPLACE TEMPORARY TABLE tItemShelvingRadar - (PRIMARY KEY (itemFk)) - ENGINE = MEMORY - SELECT iss.itemFk, - 0 `hour`, - 0 `minute`, - '--' itemPlacementCode, - i.longName, - i.size, - i.subName producer, - i.upToDown, - IFNULL(a.available, 0) available, - IFNULL(v.visible - iss.visible, 0) dayEndVisible, - IFNULL(v.visible - iss.visible, 0) firstNegative, - IFNULL(v.visible - iss.visible, 0) itemPlacementVisible, - IFNULL(i.minimum * b.packing, 0) itemPlacementSize, - ips.onTheWay, - iss.visible itemShelvingStock, - IFNULL(v.visible, 0) visible, - b.isPickedOff, - iss.sectorFk - FROM itemShelvingStock iss - JOIN item i ON i.id = iss.itemFk - LEFT JOIN cache.last_buy lb ON lb.item_id = iss.itemFk - AND lb.warehouse_id = vWarehouseFk - LEFT JOIN buy b ON b.id = lb.buy_id - LEFT JOIN cache.available a ON a.item_id = iss.itemFk - AND a.calc_id = vCalcAvailableFk - LEFT JOIN cache.visible v ON v.item_id = iss.itemFk - AND v.calc_id = vCalcVisibleFk - LEFT JOIN ( - SELECT itemFk, SUM(saldo) onTheWay - FROM itemPlacementSupplyList - WHERE saldo > 0 - GROUP BY itemFk - ) ips ON ips.itemFk = i.id - WHERE iss.sectorFk = vSectorFk - OR iss.sectorFk IS NULL; - - CREATE OR REPLACE TEMPORARY TABLE tmp.itemOutTime - SELECT *, SUM(amount) quantity - FROM ( - SELECT io.itemFk, - io.quantity amount, - IF(HOUR(t.shipped), HOUR(t.shipped), HOUR(z.`hour`)) `hours`, - IF(MINUTE(t.shipped), MINUTE(t.shipped), MINUTE(z.`hour`)) `minutes` - FROM itemTicketOut `io` - JOIN tItemShelvingRadar isr ON isr.itemFk = io.itemFk - JOIN ticket t ON t.id= io.ticketFk - JOIN ticketState ts ON ts.ticketFk = io.ticketFk - JOIN `state` s ON s.id = ts.stateFk - LEFT JOIN `zone` z ON z.id = t.zoneFk - LEFT JOIN ( - SELECT DISTINCT saleFk - FROM saleTracking st - WHERE st.created > util.VN_CURDATE() - AND st.isChecked - ) stPrevious ON stPrevious.saleFk = io.saleFk - WHERE t.warehouseFk = vWarehouseFk - AND NOT s.isPicked - AND NOT io.reserved - AND stPrevious.saleFk IS NULL - AND io.shipped >= util.VN_CURDATE() - AND io.shipped < util.VN_CURDATE() + INTERVAL 1 DAY - ) sub - GROUP BY itemFk, `hours`, `minutes`; - - INSERT INTO tItemShelvingRadar (itemFk) - SELECT itemFk FROM tmp.itemOutTime - ON DUPLICATE KEY UPDATE dayEndVisible = dayEndVisible + quantity, - firstNegative = IF(firstNegative < 0, firstNegative, firstNegative + quantity), - `hour` = IFNULL(IF(firstNegative > 0 , `hour`, `hours`), 0), - `minute` = IFNULL(IF(firstNegative > 0, `minute`, `minutes`), 0); - - UPDATE tItemShelvingRadar isr - JOIN ( - SELECT s.itemFk, SUM(s.quantity) amount - FROM sale s - JOIN ticket t ON t.id = s.ticketFk - JOIN ticketState ts ON ts.ticketFk = t.id - WHERE t.shipped BETWEEN util.VN_CURDATE() AND util.dayend(util.VN_CURDATE()) - AND ts.code = 'COOLER_PREPARATION' - GROUP BY s.itemFk - ) sub ON sub.itemFk = isr.itemFk - SET isr.dayEndVisible = dayEndVisible + sub.amount, - firstNegative = firstNegative + sub.amount; - - SELECT * FROM tItemShelvingRadar; - END IF; - - DROP TEMPORARY TABLE tItemShelvingRadar; - -END$$ -DELIMITER ; diff --git a/db/routines/vn/procedures/ticket_DelayTruck.sql b/db/routines/vn/procedures/ticket_DelayTruck.sql deleted file mode 100644 index 29d13ca0d0..0000000000 --- a/db/routines/vn/procedures/ticket_DelayTruck.sql +++ /dev/null @@ -1,36 +0,0 @@ -DELIMITER $$ -CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `vn`.`ticket_DelayTruck`(vWarehouserFk INT, vHour INT, vMinute INT) -BEGIN - DECLARE done INT DEFAULT FALSE; - DECLARE vTicketFk INT; - DECLARE cur1 CURSOR FOR SELECT ticketFk FROM tTicket; - - DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; - - CALL vn.productionControl(vWarehouserFk,0) ; - - DROP TEMPORARY TABLE IF EXISTS tTicket; - CREATE TEMPORARY TABLE tTicket - SELECT ticketFk - FROM tmp.productionBuffer - JOIN alertLevel al ON al.code IN ('FREE', 'APPROVED') - WHERE shipped = util.VN_CURDATE() - AND problem LIKE '%I:%' - AND (HH <= vHour OR HH = vHour AND mm < vMinute) - AND alertLevel = al.id; - - OPEN cur1; - - read_loop: LOOP - FETCH cur1 INTO vTicketFk; - IF done THEN - LEAVE read_loop; - END IF; - - CALL vn.ticket_DelayTruckSplit(vTicketFk); - END LOOP; - - CLOSE cur1; - DROP TEMPORARY TABLE tTicket, tmp.productionBuffer; -END$$ -DELIMITER ; diff --git a/db/routines/vn/procedures/ticket_DelayTruckSplit.sql b/db/routines/vn/procedures/ticket_DelayTruckSplit.sql deleted file mode 100644 index 3d22207f3c..0000000000 --- a/db/routines/vn/procedures/ticket_DelayTruckSplit.sql +++ /dev/null @@ -1,59 +0,0 @@ -DELIMITER $$ -CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `vn`.`ticket_DelayTruckSplit`( - vTicketFk INT -) -BEGIN -/** - * Splita las lineas de ticket que no estan ubicadas - * - * @param vTicketFk Id ticket - */ - DECLARE vNewTicketFk INT; - DECLARE vTotalLines INT; - DECLARE vLinesToSplit INT; - - DROP TEMPORARY TABLE IF EXISTS tmp.SalesToSplit; - - SELECT COUNT(*) INTO vTotalLines - FROM sale - WHERE ticketFk = vTicketFk; - - CREATE TEMPORARY TABLE tmp.SalesToSplit - SELECT s.id saleFk - FROM ticket t - JOIN sale s ON t.id = s.ticketFk - LEFT JOIN ( - SELECT ish.itemFk itemFk, - SUM(ish.visible) visible, - s.warehouseFk warehouseFk - FROM itemShelving ish - JOIN shelving sh ON sh.id = ish.shelvingFk - JOIN parking p ON p.id = sh.parkingFk - JOIN sector s ON s.id = p.sectorFk - GROUP BY ish.itemFk, - s.warehouseFk - ) issw ON issw.itemFk = s.itemFk - AND issw.warehouseFk = t.warehouseFk - WHERE s.quantity > IFNULL(issw.visible, 0) - AND s.quantity > 0 - AND NOT s.isPicked - AND NOT s.reserved - AND t.id = vTicketFk; - - SELECT COUNT(*) INTO vLinesToSplit - FROM tmp.SalesToSplit; - - IF vLinesToSplit = vTotalLines AND vLinesToSplit > 0 THEN - SET vNewTicketFk = vTicketFk; - ELSE - CALL ticket_Clone(vTicketFk, vNewTicketFk); - UPDATE sale s - JOIN tmp.SalesToSplit sts ON sts.saleFk = s.id - SET s.ticketFk = vNewTicketFk; - END IF; - - CALL ticket_setState(vNewTicketFk, 'FIXING'); - - DROP TEMPORARY TABLE tmp.SalesToSplit; -END$$ -DELIMITER ; From 857874c4c6cfda3984482a3ecea91f06ec4004e8 Mon Sep 17 00:00:00 2001 From: jgallego Date: Mon, 27 Jan 2025 15:43:26 +0100 Subject: [PATCH 089/149] refactor: refs #7686 remove obsolete alert level updates and adjust state alert level logic --- db/versions/11202-limeRuscus/00-addAlertLevel.sql | 6 ------ .../11202-limeRuscus/01-updateStateAlertLevel.sql | 9 +-------- modules/ticket/back/methods/state/isEditable.js | 4 ++-- 3 files changed, 3 insertions(+), 16 deletions(-) delete mode 100644 db/versions/11202-limeRuscus/00-addAlertLevel.sql diff --git a/db/versions/11202-limeRuscus/00-addAlertLevel.sql b/db/versions/11202-limeRuscus/00-addAlertLevel.sql deleted file mode 100644 index 1f667946bb..0000000000 --- a/db/versions/11202-limeRuscus/00-addAlertLevel.sql +++ /dev/null @@ -1,6 +0,0 @@ -UPDATE vn.alertLevel SET id = 5 WHERE id = 4; -UPDATE vn.alertLevel SET id = 4 WHERE id = 3; -UPDATE vn.alertLevel SET id = 3 WHERE id = 2; -UPDATE vn.alertLevel SET id = 2 WHERE id = 1; -INSERT INTO vn.alertLevel (code, id, hasToRecalcPrice) - VALUES ('APPROVED', 1, 1) \ No newline at end of file diff --git a/db/versions/11202-limeRuscus/01-updateStateAlertLevel.sql b/db/versions/11202-limeRuscus/01-updateStateAlertLevel.sql index f7261c08ac..c49ad71ed8 100644 --- a/db/versions/11202-limeRuscus/01-updateStateAlertLevel.sql +++ b/db/versions/11202-limeRuscus/01-updateStateAlertLevel.sql @@ -1,12 +1,5 @@ UPDATE vn.state - SET alertLevel = 1 -- APPROVED - WHERE id IN ( - 3, -- Ok - 4 -- Impreso - ); - -UPDATE vn.state - SET alertLevel = 2 -- ON_PREVIOUS + SET alertLevel = 1 -- ON_PREVIOUS WHERE id IN ( 36, -- Previa Revisando 37, -- Previa Revisado diff --git a/modules/ticket/back/methods/state/isEditable.js b/modules/ticket/back/methods/state/isEditable.js index ec246c61f5..6961838278 100644 --- a/modules/ticket/back/methods/state/isEditable.js +++ b/modules/ticket/back/methods/state/isEditable.js @@ -34,8 +34,8 @@ module.exports = Self => { state.code == 'PICKER_DESIGNED' || state.code == 'PRINTED' ) ); - - const isAllowed = isAllEditable || isSomeEditable || state.alertLevel == 0; + const alertLevel = await models.AlertLevel.findOne({where: {code: 'FREE'}}, myOptions); + const isAllowed = isAllEditable || isSomeEditable || state.alertLevel == alertLevel.id; return isAllowed; }; }; From 08d241436320e3a66bdf974df595e65fe030b8ef Mon Sep 17 00:00:00 2001 From: jgallego Date: Tue, 28 Jan 2025 09:16:19 +0100 Subject: [PATCH 090/149] refactor: refs #7686 update editableStates tests to check for 'OK' and 'Bloqueado' states --- .../ticket/back/methods/state/specs/editableState.spec.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/ticket/back/methods/state/specs/editableState.spec.js b/modules/ticket/back/methods/state/specs/editableState.spec.js index 2e1ce0c199..0c4024bbc0 100644 --- a/modules/ticket/back/methods/state/specs/editableState.spec.js +++ b/modules/ticket/back/methods/state/specs/editableState.spec.js @@ -35,9 +35,9 @@ describe('ticket editableStates()', () => { const editableStates = await models.State.editableStates(ctx, filter, options); - const pickerDesignedState = editableStates.some(state => state.code == 'PICKER_DESIGNED'); + const okState = editableStates.some(state => state.code == 'OK'); - expect(pickerDesignedState).toBeTruthy(); + expect(okState).toBeTruthy(); await tx.rollback(); } catch (e) { @@ -54,11 +54,11 @@ describe('ticket editableStates()', () => { const employeeRole = 1; const ctx = {req: {accessToken: {userId: employeeRole}}}; - const filter = {where: {name: {like: '%Previa OK%'}}}; + const filter = {where: {name: {like: '%Bloqueado%'}}}; const [editableStates] = await models.State.editableStates(ctx, filter, options); - expect(editableStates.name).toBe('Previa OK'); + expect(editableStates.name).toBe('Bloqueado'); await tx.rollback(); } catch (e) { From a29de13ab364425732847e91c055d12f3d3f689b Mon Sep 17 00:00:00 2001 From: sergiodt Date: Tue, 28 Jan 2025 09:54:26 +0100 Subject: [PATCH 091/149] fix: refs #7569 saveSign use smtp.send and fix link --- loopback/locale/en.json | 2 +- loopback/locale/es.json | 2 +- loopback/locale/fr.json | 2 +- loopback/locale/pt.json | 2 +- .../ticket/back/methods/ticket/saveSign.js | 51 +++++++++---------- .../methods/ticket/specs/saveSign.spec.js | 2 +- 6 files changed, 29 insertions(+), 32 deletions(-) diff --git a/loopback/locale/en.json b/loopback/locale/en.json index 06428475fc..eeb32f545e 100644 --- a/loopback/locale/en.json +++ b/loopback/locale/en.json @@ -253,5 +253,5 @@ "Sales already moved": "Sales already moved", "Holidays to past days not available": "Holidays to past days not available", "Incorrect delivery order alert on route": "Incorrect delivery order alert on route: {{ route }} zone: {{ zone }}", - "Ticket has been delivered out of order": "The ticket {{ticket}} {{{fullUrl}}} has been delivered out of order." + "Ticket has been delivered out of order": "The ticket {{ticket}} of route {{{fullUrl}}} has been delivered out of order." } \ No newline at end of file diff --git a/loopback/locale/es.json b/loopback/locale/es.json index abd2f79a0d..2ead6fa105 100644 --- a/loopback/locale/es.json +++ b/loopback/locale/es.json @@ -395,6 +395,6 @@ "All tickets have a route order": "Todos los tickets tienen orden de ruta", "There are tickets to be invoiced": "La zona tiene tickets por facturar", "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.", + "Ticket has been delivered out of order": "El ticket {{ticket}} de la ruta {{{fullUrl}}} no ha sigo entregado en su orden.", "Price cannot be blank": "El precio no puede estar en blanco" } \ No newline at end of file diff --git a/loopback/locale/fr.json b/loopback/locale/fr.json index d7d5b7710e..378b0d2671 100644 --- a/loopback/locale/fr.json +++ b/loopback/locale/fr.json @@ -368,5 +368,5 @@ "ticketLostExpedition": "Le ticket [{{ticketId}}]({{{ticketUrl}}}) a l'expédition perdue suivante : {{expeditionId}}", "The web user's email already exists": "L'email de l'internaute existe déjà", "Incorrect delivery order alert on route": "Alerte de bon de livraison incorrect sur l'itinéraire: {{ route }} zone : {{ zone }}", - "Ticket has been delivered out of order": "Le ticket {{ticket}} {{{fullUrl}}} a été livré hors ordre." + "Ticket has been delivered out of order": "Le ticket {{ticket}} de la route {{{fullUrl}}} a été livré hors service." } \ No newline at end of file diff --git a/loopback/locale/pt.json b/loopback/locale/pt.json index d1ac2ef236..35fe3d4f17 100644 --- a/loopback/locale/pt.json +++ b/loopback/locale/pt.json @@ -367,5 +367,5 @@ "ticketLostExpedition": "O ticket [{{ticketId}}]({{{ticketUrl}}}) tem a seguinte expedição perdida: {{expeditionId}}", "The web user's email already exists": "O e-mail do utilizador da web já existe.", "Incorrect delivery order alert on route": "Alerta de ordem de entrega incorreta na rota: {{ route }} zona: {{ zone }}", - "Ticket has been delivered out of order": "O ticket {{ticket}} {{{fullUrl}}} foi entregue fora de ordem." + "Ticket has been delivered out of order": "O ticket {{ticket}} da rota {{{fullUrl}}} foi entregue fora de ordem." } \ No newline at end of file diff --git a/modules/ticket/back/methods/ticket/saveSign.js b/modules/ticket/back/methods/ticket/saveSign.js index f99311c392..93202d042f 100644 --- a/modules/ticket/back/methods/ticket/saveSign.js +++ b/modules/ticket/back/methods/ticket/saveSign.js @@ -1,4 +1,5 @@ const UserError = require('vn-loopback/util/user-error'); +const smtp = require('vn-print/core/smtp'); module.exports = Self => { Self.remoteMethodCtx('saveSign', { @@ -31,6 +32,7 @@ module.exports = Self => { Self.saveSign = async(ctx, tickets, location, signedTime, options) => { const models = Self.app.models; const myOptions = {userId: ctx.req.accessToken.userId}; + const url = await Self.app.models.Url.getUrl('lilium'); let tx; let ticket; let dms; @@ -146,11 +148,11 @@ module.exports = Self => { await ticket.updateAttribute('isSigned', true, myOptions); const [{stateCode}] = await Self.rawSql(` - SELECT + SELECT IF((SUM(CASE WHEN est.code = 'DELIVERED' THEN 1 ELSE 0 END) = COUNT(*)), 'DELIVERED','PARTIAL_DELIVERED') stateCode FROM vn.expedition e - JOIN vn.expeditionStateType est ON est.id = e.stateTypeFk + JOIN vn.expeditionStateType est ON est.id = e.stateTypeFk WHERE e.ticketFk = ?; `, [ticketId], myOptions); @@ -167,15 +169,15 @@ module.exports = Self => { FROM ticket t JOIN ticketState ts ON ts.ticketFk = t.id JOIN state s ON s.code = ts.code - WHERE t.routeFk = ? - AND s.\`order\` < ? - AND priority <(SELECT t.priority + WHERE t.routeFk = ? + AND s.\`order\` < ? + AND priority <(SELECT t.priority FROM ticket t WHERE t.id = ?)` , [ticket.routeFk, orderState.id, ticket.id], myOptions); if (ticketIncorrect?.length > 0) - await sendMail(ctx, ticket.routeFk, ticket.id, ticket.zone().name); + await sendMail(ticket.routeFk, ticket.id, ticket.zone().name); } if (ticket?.address()?.province()?.country()?.code != 'ES' && ticket.$cmrFk) { @@ -189,26 +191,21 @@ module.exports = Self => { throw e; } await models.Ticket.sendCmrEmail(ctx, externalTickets); + + async function sendMail(route, ticket, zoneName) { + const $t = ctx.req.__; + const fullUrl = `${route}`; + await smtp.send({ + to: 'repartos@verdnatura.es', + subject: $t('Incorrect delivery order alert on route', { + route, + zone: zoneName + }), + html: $t('Ticket has been delivered out of order', { + ticket, + fullUrl + }) + }); + } }; - - async function sendMail(ctx, route, ticket, zoneName) { - const $t = ctx.req.__; - const url = await Self.app.models.Url.getUrl(); - const sendTo = 'repartos@verdnatura.es'; - const fullUrl = `${url}route/${route}/summary`; - const emailSubject = $t('Incorrect delivery order alert on route', { - route, - zone: zoneName - }); - const emailBody = $t('Ticket has been delivered out of order', { - ticket, - fullUrl - }); - - await Self.app.models.Mail.create({ - receiver: sendTo, - subject: emailSubject, - body: emailBody - }); - } }; diff --git a/modules/ticket/back/methods/ticket/specs/saveSign.spec.js b/modules/ticket/back/methods/ticket/specs/saveSign.spec.js index 3b426c2cf9..092ff95fdb 100644 --- a/modules/ticket/back/methods/ticket/specs/saveSign.spec.js +++ b/modules/ticket/back/methods/ticket/specs/saveSign.spec.js @@ -6,7 +6,7 @@ describe('Ticket saveSign()', () => { getLocale: () => { return 'en'; }, - __: () => {}, + __: t => t, accessToken: {userId: 9} } }; From 79ea19a36040bc9111fa8485d4e86cdbadf66873 Mon Sep 17 00:00:00 2001 From: sergiodt Date: Tue, 28 Jan 2025 11:14:08 +0100 Subject: [PATCH 092/149] fix: refs #7569 saveSign use lastState --- modules/ticket/back/methods/ticket/saveSign.js | 13 +++++++------ .../back/methods/ticket/specs/saveSign.spec.js | 2 +- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/modules/ticket/back/methods/ticket/saveSign.js b/modules/ticket/back/methods/ticket/saveSign.js index 93202d042f..fd5a95e689 100644 --- a/modules/ticket/back/methods/ticket/saveSign.js +++ b/modules/ticket/back/methods/ticket/saveSign.js @@ -161,20 +161,21 @@ module.exports = Self => { if (stateCode == 'DELIVERED' && ticket.priority) { const orderState = await models.State.findOne({ where: {code: 'DELIVERED'}, - fields: ['id'] + fields: ['order'] }, myOptions); const ticketIncorrect = await Self.rawSql(` - SELECT t.id - FROM ticket t - JOIN ticketState ts ON ts.ticketFk = t.id - JOIN state s ON s.code = ts.code + SELECT tls.ticketFk + FROM ticketLastState tls + JOIN ticketTracking tt ON tt.id = tls.ticketTrackingFk + JOIN ticket t ON t.id = tt.ticketFk + JOIN state s ON s.id = tt.stateFk WHERE t.routeFk = ? AND s.\`order\` < ? AND priority <(SELECT t.priority FROM ticket t WHERE t.id = ?)` - , [ticket.routeFk, orderState.id, ticket.id], myOptions); + , [ticket.routeFk, orderState.order, ticket.id], myOptions); if (ticketIncorrect?.length > 0) await sendMail(ticket.routeFk, ticket.id, ticket.zone().name); diff --git a/modules/ticket/back/methods/ticket/specs/saveSign.spec.js b/modules/ticket/back/methods/ticket/specs/saveSign.spec.js index 092ff95fdb..66ab39d0da 100644 --- a/modules/ticket/back/methods/ticket/specs/saveSign.spec.js +++ b/modules/ticket/back/methods/ticket/specs/saveSign.spec.js @@ -60,7 +60,7 @@ describe('Ticket saveSign()', () => { expect(ticketTrackingAfter.name).toBe('Entregado en parte'); }); - it('should send an email to notify that the delivery order is not correct', async() => { + fit('should send an email to notify that the delivery order is not correct', async() => { const tx = await models.Ticket.beginTransaction({}); const ticketFk = 8; const priority = 5; From 3f0f155113b8c8f7c1d0da37a611584e636af154 Mon Sep 17 00:00:00 2001 From: sergiodt Date: Tue, 28 Jan 2025 11:15:29 +0100 Subject: [PATCH 093/149] fix: refs #7569 saveSign use lastState --- modules/ticket/back/methods/ticket/specs/saveSign.spec.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ticket/back/methods/ticket/specs/saveSign.spec.js b/modules/ticket/back/methods/ticket/specs/saveSign.spec.js index 66ab39d0da..092ff95fdb 100644 --- a/modules/ticket/back/methods/ticket/specs/saveSign.spec.js +++ b/modules/ticket/back/methods/ticket/specs/saveSign.spec.js @@ -60,7 +60,7 @@ describe('Ticket saveSign()', () => { expect(ticketTrackingAfter.name).toBe('Entregado en parte'); }); - fit('should send an email to notify that the delivery order is not correct', async() => { + it('should send an email to notify that the delivery order is not correct', async() => { const tx = await models.Ticket.beginTransaction({}); const ticketFk = 8; const priority = 5; From 1575c509d13e952067d6e219820aaf9d68059bd2 Mon Sep 17 00:00:00 2001 From: sergiodt Date: Tue, 28 Jan 2025 11:19:45 +0100 Subject: [PATCH 094/149] fix: refs #7569 saveSign use lastState --- .../ticket/back/methods/ticket/saveSign.js | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/modules/ticket/back/methods/ticket/saveSign.js b/modules/ticket/back/methods/ticket/saveSign.js index fd5a95e689..d619e20379 100644 --- a/modules/ticket/back/methods/ticket/saveSign.js +++ b/modules/ticket/back/methods/ticket/saveSign.js @@ -166,16 +166,16 @@ module.exports = Self => { const ticketIncorrect = await Self.rawSql(` SELECT tls.ticketFk - FROM ticketLastState tls - JOIN ticketTracking tt ON tt.id = tls.ticketTrackingFk - JOIN ticket t ON t.id = tt.ticketFk - JOIN state s ON s.id = tt.stateFk - WHERE t.routeFk = ? - AND s.\`order\` < ? - AND priority <(SELECT t.priority - FROM ticket t - WHERE t.id = ?)` - , [ticket.routeFk, orderState.order, ticket.id], myOptions); + FROM ticketLastState tls + JOIN ticketTracking tt ON tt.id = tls.ticketTrackingFk + JOIN ticket t ON t.id = tt.ticketFk + JOIN state s ON s.id = tt.stateFk + WHERE t.routeFk = ? + AND s.\`order\` < ? + AND priority < (SELECT priority + FROM ticket + WHERE id = ?) + `, [ticket.routeFk, orderState.order, ticket.id], myOptions); if (ticketIncorrect?.length > 0) await sendMail(ticket.routeFk, ticket.id, ticket.zone().name); From 8482743baf33eebc495504731fa3ac17cd898386 Mon Sep 17 00:00:00 2001 From: robert Date: Tue, 28 Jan 2025 11:26:48 +0100 Subject: [PATCH 095/149] feat: refs #6822 ACL --- db/routines/vn/procedures/entry_transfer.sql | 2 +- db/versions/11425-aquaCordyline/00-firstScript.sql | 2 ++ modules/entry/back/methods/entry/transfer.js | 1 + 3 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 db/versions/11425-aquaCordyline/00-firstScript.sql diff --git a/db/routines/vn/procedures/entry_transfer.sql b/db/routines/vn/procedures/entry_transfer.sql index 5b83ae5321..c02365092b 100644 --- a/db/routines/vn/procedures/entry_transfer.sql +++ b/db/routines/vn/procedures/entry_transfer.sql @@ -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 ) diff --git a/db/versions/11425-aquaCordyline/00-firstScript.sql b/db/versions/11425-aquaCordyline/00-firstScript.sql new file mode 100644 index 0000000000..d8d16a29f7 --- /dev/null +++ b/db/versions/11425-aquaCordyline/00-firstScript.sql @@ -0,0 +1,2 @@ +INSERT IGNORE INTO salix.ACL (id, model, property, accessType, permission, principalType, principalId, editorFk) +VALUES(1019, 'Entry', 'transfer', 'WRITE', 'ALLOW', 'ROLE', 'coolerBoss', 100); diff --git a/modules/entry/back/methods/entry/transfer.js b/modules/entry/back/methods/entry/transfer.js index db68736633..fc1c4808af 100644 --- a/modules/entry/back/methods/entry/transfer.js +++ b/modules/entry/back/methods/entry/transfer.js @@ -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', From 051c6ffcbc7649e63e3d866d6da4c7f34f20db3e Mon Sep 17 00:00:00 2001 From: jorgep Date: Tue, 28 Jan 2025 12:23:24 +0100 Subject: [PATCH 096/149] refactor(vehicle filter): refs #7119 simplify search condition to use logical OR for ID and number plate --- modules/route/back/methods/vehicle/filter.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/modules/route/back/methods/vehicle/filter.js b/modules/route/back/methods/vehicle/filter.js index ef87c1448e..cb55f5f3ca 100644 --- a/modules/route/back/methods/vehicle/filter.js +++ b/modules/route/back/methods/vehicle/filter.js @@ -68,9 +68,7 @@ module.exports = Self => { const where = buildFilter(ctx.args, (param, value) => { switch (param) { case 'search': - return /^\d+$/.test(value) - ? {'v.id': value} - : {numberPlate: {like: `%${value}%`}}; + return {or: [{'v.id': value}, {numberPlate: {like: `%${value}%`}}]}; case 'id': return {'v.id': value}; case 'description': From 821e2cbe4d4a95614ef724b621c1b15f85684895 Mon Sep 17 00:00:00 2001 From: ivanm Date: Tue, 28 Jan 2025 19:11:56 +0100 Subject: [PATCH 097/149] feat: refs #8312 new column packaging.rejectCost --- db/versions/11427-azureChico/00-firstScript.sql | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 db/versions/11427-azureChico/00-firstScript.sql diff --git a/db/versions/11427-azureChico/00-firstScript.sql b/db/versions/11427-azureChico/00-firstScript.sql new file mode 100644 index 0000000000..8c232efccb --- /dev/null +++ b/db/versions/11427-azureChico/00-firstScript.sql @@ -0,0 +1,2 @@ +ALTER TABLE vn.packaging + ADD COLUMN rejectCost decimal(10, 2) NOT NULL DEFAULT 0.00 \ No newline at end of file From 56b0baebaa28e4b6054044e9493e3b0d0aeaea33 Mon Sep 17 00:00:00 2001 From: guillermo Date: Wed, 29 Jan 2025 07:53:41 +0100 Subject: [PATCH 098/149] feat: refs #8227 Roadmap changes --- db/dump/fixtures.before.sql | 16 ++++++++-------- db/versions/11416-goldenTulip/06-firstScript.sql | 5 +++-- db/versions/11416-goldenTulip/07-firstScript.sql | 2 ++ modules/route/back/models/route.json | 7 +------ 4 files changed, 14 insertions(+), 16 deletions(-) create mode 100644 db/versions/11416-goldenTulip/07-firstScript.sql diff --git a/db/dump/fixtures.before.sql b/db/dump/fixtures.before.sql index eb11264e70..a1e6fbcc3a 100644 --- a/db/dump/fixtures.before.sql +++ b/db/dump/fixtures.before.sql @@ -745,15 +745,15 @@ INSERT INTO `vn`.`zoneClosure` (`zoneFk`, `dated`, `hour`) 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`) +INSERT INTO `vn`.`route`(`id`, `time`, `workerFk`, `created`, `vehicleFk`, `agencyModeFk`, `description`, `m3`, `cost`, `started`, `finished`, `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()), - (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()); + (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), 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), 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), 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), 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), 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), 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), 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 diff --git a/db/versions/11416-goldenTulip/06-firstScript.sql b/db/versions/11416-goldenTulip/06-firstScript.sql index 58563cfd5b..82de52c674 100644 --- a/db/versions/11416-goldenTulip/06-firstScript.sql +++ b/db/versions/11416-goldenTulip/06-firstScript.sql @@ -6,5 +6,6 @@ GRANT DELETE, UPDATE, INSERT ON TABLE vn.roadmap TO 'deliveryBoss'; GRANT DELETE, UPDATE, INSERT ON TABLE vn.roadmapStop TO 'deliveryBoss'; GRANT DELETE, UPDATE, INSERT ON TABLE vn.roadmapAddress TO 'deliveryBoss'; -GRANT EXECUTE ON PROCEDURE vn.roadmap_cloneDay TO 'deliveryBoss'; -GRANT EXECUTE ON FUNCTION vn.getTimeBetweenRoadmapAddresses TO 'deliveryBoss'; +-- Comentado debido a que da error porque ejecuta primero el script de la versión +-- GRANT EXECUTE ON PROCEDURE vn.roadmap_cloneDay TO 'deliveryBoss'; +-- GRANT EXECUTE ON FUNCTION vn.getTimeBetweenRoadmapAddresses TO 'deliveryBoss'; diff --git a/db/versions/11416-goldenTulip/07-firstScript.sql b/db/versions/11416-goldenTulip/07-firstScript.sql new file mode 100644 index 0000000000..13cb9df894 --- /dev/null +++ b/db/versions/11416-goldenTulip/07-firstScript.sql @@ -0,0 +1,2 @@ +ALTER TABLE vn.route DROP FOREIGN KEY fk_route_1; +ALTER TABLE vn.route DROP COLUMN zoneFk; diff --git a/modules/route/back/models/route.json b/modules/route/back/models/route.json index 8f4eab7611..9483525718 100644 --- a/modules/route/back/models/route.json +++ b/modules/route/back/models/route.json @@ -75,11 +75,6 @@ "type": "hasMany", "model": "Ticket", "foreignKey": "routeFk" - }, - "zone": { - "type": "belongsTo", - "model": "Zone", - "foreignKey": "zoneFk" - } + } } } From f2be71be6cc467e261022a183065f7c427683707 Mon Sep 17 00:00:00 2001 From: Javier Segarra Date: Wed, 29 Jan 2025 09:54:05 +0100 Subject: [PATCH 099/149] fix: refs #7134 replace value by util.VN_CURDATE() --- db/dump/fixtures.before.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/db/dump/fixtures.before.sql b/db/dump/fixtures.before.sql index e852a3931a..acbb40efeb 100644 --- a/db/dump/fixtures.before.sql +++ b/db/dump/fixtures.before.sql @@ -4051,7 +4051,7 @@ 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, '2024-11-20 13:06:02.000', 1, util.VN_CURDATE(), 9); + (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), From 9a6b89793c7eba0a3fab6967314917a1091a8478 Mon Sep 17 00:00:00 2001 From: Juan Ferrer Toribio Date: Wed, 29 Jan 2025 10:35:06 +0100 Subject: [PATCH 100/149] fix: refs #8494 Fix ZoneIncluded logs --- db/routines/vn/triggers/zoneIncluded_afterDelete.sql | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/db/routines/vn/triggers/zoneIncluded_afterDelete.sql b/db/routines/vn/triggers/zoneIncluded_afterDelete.sql index 2990626cad..d3caedb13f 100644 --- a/db/routines/vn/triggers/zoneIncluded_afterDelete.sql +++ b/db/routines/vn/triggers/zoneIncluded_afterDelete.sql @@ -6,8 +6,7 @@ BEGIN INSERT INTO zoneLog SET `action` = 'delete', `changedModel` = 'zoneIncluded', - `changedModelId` = OLD.zoneFk, + `changedModelId` = OLD.id, `userFk` = account.myUser_getId(); - END$$ DELIMITER ; From f088f1776fa5e30b0887f46fb95e4dd0fdb16d6c Mon Sep 17 00:00:00 2001 From: Jon Date: Wed, 29 Jan 2025 10:45:29 +0100 Subject: [PATCH 101/149] fix: fixed manual invoice --- .../invoiceOut/back/methods/invoiceOut/createManualInvoice.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/invoiceOut/back/methods/invoiceOut/createManualInvoice.js b/modules/invoiceOut/back/methods/invoiceOut/createManualInvoice.js index a06128848a..c4e336818a 100644 --- a/modules/invoiceOut/back/methods/invoiceOut/createManualInvoice.js +++ b/modules/invoiceOut/back/methods/invoiceOut/createManualInvoice.js @@ -109,7 +109,8 @@ module.exports = Self => { where: { clientFk: clientFk, shipped: {lte: maxShipped} - } + }, + order: 'shipped DESC' }, myOptions); companyFk = company.companyFk; } From ad29b265536264cdeef682ed608ca7e4459c2497 Mon Sep 17 00:00:00 2001 From: jtubau Date: Wed, 29 Jan 2025 12:43:03 +0100 Subject: [PATCH 102/149] refactor: refs #7414 update Spanish translation for 'total' to 'importe' --- modules/ticket/back/locale/sale/es.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ticket/back/locale/sale/es.yml b/modules/ticket/back/locale/sale/es.yml index e6a984a5d6..eefd05d83d 100644 --- a/modules/ticket/back/locale/sale/es.yml +++ b/modules/ticket/back/locale/sale/es.yml @@ -15,4 +15,4 @@ columns: priceFixed: precio fijado isPriceFixed: tiene precio fijado isAdded: añadida - total: total + total: importe From d53669019794843a3289235b8a3c5da8e5dd8a0a Mon Sep 17 00:00:00 2001 From: robert Date: Wed, 29 Jan 2025 12:43:46 +0100 Subject: [PATCH 103/149] feat: refs #6822 changes request --- db/versions/11425-aquaCordyline/00-firstScript.sql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/db/versions/11425-aquaCordyline/00-firstScript.sql b/db/versions/11425-aquaCordyline/00-firstScript.sql index d8d16a29f7..f8b194e8a4 100644 --- a/db/versions/11425-aquaCordyline/00-firstScript.sql +++ b/db/versions/11425-aquaCordyline/00-firstScript.sql @@ -1,2 +1,2 @@ -INSERT IGNORE INTO salix.ACL (id, model, property, accessType, permission, principalType, principalId, editorFk) -VALUES(1019, 'Entry', 'transfer', 'WRITE', 'ALLOW', 'ROLE', 'coolerBoss', 100); +INSERT IGNORE INTO salix.ACL (model, property, accessType, permission, principalType, principalId) +VALUES('Entry', 'transfer', 'WRITE', 'ALLOW', 'ROLE', 'coolerBoss'); From a14d6227a11d7384483eb28c5a1d382b470203c3 Mon Sep 17 00:00:00 2001 From: guillermo Date: Wed, 29 Jan 2025 14:15:22 +0100 Subject: [PATCH 104/149] feat: refs #8227 Roadmap changes --- .../getTimeBetweenRoadmapAddresses.sql | 41 ++++++++++++++--- .../vn/triggers/roadmap_afterUpdate.sql | 17 +++++++ .../vn/triggers/roadmap_beforeInsert.sql | 26 +++++++++-- .../vn/triggers/roadmap_beforeUpdate.sql | 45 +++++++++++++++++-- .../11416-goldenTulip/01-firstScript.sql | 12 +++-- .../11416-goldenTulip/02-firstScript.sql | 6 ++- .../11416-goldenTulip/08-firstScript.sql | 2 + 7 files changed, 130 insertions(+), 19 deletions(-) create mode 100644 db/routines/vn/triggers/roadmap_afterUpdate.sql create mode 100644 db/versions/11416-goldenTulip/08-firstScript.sql diff --git a/db/routines/vn/functions/getTimeBetweenRoadmapAddresses.sql b/db/routines/vn/functions/getTimeBetweenRoadmapAddresses.sql index 5a647d51b7..354aeb835f 100644 --- a/db/routines/vn/functions/getTimeBetweenRoadmapAddresses.sql +++ b/db/routines/vn/functions/getTimeBetweenRoadmapAddresses.sql @@ -16,19 +16,46 @@ BEGIN */ DECLARE vSeconds INT; - WITH wRoadmap AS ( + WITH wRoadmapStop AS ( SELECT ROW_NUMBER() OVER(PARTITION BY roadmapFk ORDER BY eta) `sequence`, roadmapFk, roadmapAddressFk, eta FROM vn.roadmapStop + WHERE roadmapFk IS NOT NULL + AND roadmapAddressFk IS NOT NULL + AND eta IS NOT NULL ) - SELECT AVG(TIME_TO_SEC(TIMEDIFF(rTo.eta, rFrom.eta))) INTO vSeconds - FROM wRoadmap rFrom - JOIN wRoadmap rTo ON rTo.roadmapFk = rFrom.roadmapFk - WHERE rFrom.roadmapAddressFk = vRoadmapAddressFrom - AND rTo.roadmapAddressFk = vRoadmapAddressTo - AND rFrom.`sequence` + 1 = rTo.`sequence`; + SELECT AVG(TIME_TO_SEC(TIMEDIFF(rsTo.eta, rsFrom.eta))) INTO vSeconds + FROM wRoadmapStop rsFrom + JOIN wRoadmapStop rsTo ON rsTo.roadmapFk = rsFrom.roadmapFk + WHERE rsFrom.roadmapAddressFk = vRoadmapAddressFrom + AND rsTo.roadmapAddressFk = vRoadmapAddressTo + AND rsFrom.`sequence` + 1 = rsTo.`sequence`; + + IF NOT IFNULL(vSeconds, 0) THEN + WITH wRoadmap AS ( + SELECT id, + roadmapAddressFk, + etd + FROM vn.roadmap + WHERE roadmapAddressFk = vRoadmapAddressFrom + AND etd IS NOT NULL + ), wRoadmapStop AS ( + SELECT ROW_NUMBER() OVER(PARTITION BY roadmapFk ORDER BY eta) `sequence`, + roadmapFk, + roadmapAddressFk, + eta + FROM vn.roadmapStop + WHERE roadmapFk IS NOT NULL + AND roadmapAddressFk = vRoadmapAddressTo + AND eta IS NOT NULL + ) + SELECT AVG(TIME_TO_SEC(TIMEDIFF(rsTo.eta, rFrom.etd))) INTO vSeconds + FROM wRoadmap rFrom + JOIN wRoadmapStop rsTo ON rsTo.roadmapFk = rFrom.id + AND rsTo.`sequence` = 1; + END IF; RETURN vSeconds; END$$ diff --git a/db/routines/vn/triggers/roadmap_afterUpdate.sql b/db/routines/vn/triggers/roadmap_afterUpdate.sql new file mode 100644 index 0000000000..7fcc31d922 --- /dev/null +++ b/db/routines/vn/triggers/roadmap_afterUpdate.sql @@ -0,0 +1,17 @@ +DELIMITER $$ +CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `vn`.`roadmap_afterUpdate` + AFTER UPDATE ON `roadmap` + FOR EACH ROW +BEGIN + DECLARE vSeconds INT; + + IF NOT (NEW.etd <=> OLD.etd) THEN + SET vSeconds = TIME_TO_SEC(TIMEDIFF(NEW.etd, OLD.etd)); + IF vSeconds IS NOT NULL AND vSeconds <> 0 THEN + UPDATE roadmapStop + SET eta = eta + INTERVAL vSeconds SECOND + WHERE roadmapFk = NEW.id; + END IF; + END IF; +END$$ +DELIMITER ; \ No newline at end of file diff --git a/db/routines/vn/triggers/roadmap_beforeInsert.sql b/db/routines/vn/triggers/roadmap_beforeInsert.sql index 1f046ec143..a9b837e6b9 100644 --- a/db/routines/vn/triggers/roadmap_beforeInsert.sql +++ b/db/routines/vn/triggers/roadmap_beforeInsert.sql @@ -4,12 +4,32 @@ CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `vn`.`roadmap_beforeInsert` FOR EACH ROW BEGIN SET NEW.editorFk = account.myUser_getId(); - IF NEW.etd > NEW.eta THEN + + IF NEW.name IS NOT NULL THEN + SET NEW.name = UCASE(NEW.name); + END IF; + + IF NEW.etd > NEW.eta AND NEW.etd IS NOT NULL AND NEW.eta IS NOT NULL THEN CALL util.throw('Departure time can not be after arrival time'); END IF; - SET NEW.name = UCASE(NEW.name); - IF NEW.`trailerPlate` IS NOT NULL THEN + + IF NEW.trailerPlate IS NOT NULL THEN SET NEW.m3 = (SELECT m3 FROM vehicle WHERE numberPlate = NEW.trailerPlate); END IF; + + IF NEW.tugPlate IS NOT NULL THEN + SET NEW.m3 = NEW.m3 + (SELECT m3 FROM vehicle WHERE numberPlate = NEW.tugPlate); + END IF; + + IF NEW.driver1Fk IS NOT NULL THEN + SET NEW.driverName = (SELECT CONCAT(w.firstName, ' ', w.lastName) + FROM worker w + WHERE w.id = NEW.driver1Fk); + + SET NEW.phone = (SELECT COALESCE(w.phone, c.mobile, c.phone, c.mobile) + FROM worker w + LEFT JOIN client c ON c.id = w.id + WHERE w.id = NEW.driver1Fk); + END IF; END$$ DELIMITER ; \ No newline at end of file diff --git a/db/routines/vn/triggers/roadmap_beforeUpdate.sql b/db/routines/vn/triggers/roadmap_beforeUpdate.sql index 45b0d5e9e0..46065129d1 100644 --- a/db/routines/vn/triggers/roadmap_beforeUpdate.sql +++ b/db/routines/vn/triggers/roadmap_beforeUpdate.sql @@ -4,12 +4,51 @@ CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `vn`.`roadmap_beforeUpdate` FOR EACH ROW BEGIN SET NEW.editorFk = account.myUser_getId(); - IF NEW.etd > NEW.eta THEN + + IF NOT (NEW.name <=> OLD.name) THEN + SET NEW.name = UCASE(NEW.name); + END IF; + + IF NEW.etd > NEW.eta AND NEW.etd IS NOT NULL AND NEW.eta IS NOT NULL THEN CALL util.throw('Departure time can not be after arrival time'); END IF; - SET NEW.name = UCASE(NEW.name); - IF NOT (NEW.`trailerPlate` <=> OLD.`trailerPlate`) THEN + + IF NOT (NEW.trailerPlate <=> OLD.trailerPlate) THEN SET NEW.m3 = (SELECT m3 FROM vehicle WHERE numberPlate = NEW.trailerPlate); END IF; + + IF NOT (NEW.tugPlate <=> OLD.tugPlate) THEN + SET NEW.m3 = NEW.m3 + (SELECT m3 FROM vehicle WHERE numberPlate = NEW.tugPlate); + END IF; + + IF NOT (NEW.driverName <=> OLD.driverName) THEN + SET NEW.driver1Fk = NULL; + END IF; + + IF NOT (NEW.driver1Fk <=> OLD.driver1Fk) AND NEW.driver1Fk IS NOT NULL THEN + SET NEW.driverName = (SELECT CONCAT(w.firstName, ' ', w.lastName) + FROM worker w + WHERE w.id = NEW.driver1Fk); + + SET NEW.phone = (SELECT COALESCE(w.phone, c.mobile, c.phone, c.mobile) + FROM worker w + LEFT JOIN client c ON c.id = w.id + WHERE w.id = NEW.driver1Fk); + END IF; + + IF NOT (NEW.driverChangeName <=> OLD.driverChangeName) THEN + SET NEW.driverChangeFk = NULL; + END IF; + + IF NOT (NEW.driverChangeFk <=> OLD.driverChangeFk) AND NEW.driverChangeFk IS NOT NULL THEN + SET NEW.driverChangeName = (SELECT CONCAT(w.firstName, ' ', w.lastName) + FROM worker w + WHERE w.id = NEW.driverChangeFk); + + SET NEW.phone = (SELECT COALESCE(w.phone, c.mobile, c.phone, c.mobile) + FROM worker w + LEFT JOIN client c ON c.id = w.id + WHERE w.id = NEW.driverChangeFk); + END IF; END$$ DELIMITER ; \ No newline at end of file diff --git a/db/versions/11416-goldenTulip/01-firstScript.sql b/db/versions/11416-goldenTulip/01-firstScript.sql index 9fa580ef90..565bf0f555 100644 --- a/db/versions/11416-goldenTulip/01-firstScript.sql +++ b/db/versions/11416-goldenTulip/01-firstScript.sql @@ -4,13 +4,17 @@ ALTER TABLE vn.roadmap MODIFY COLUMN trailerPlate varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci DEFAULT NULL NULL, MODIFY COLUMN etd datetime NOT NULL COMMENT 'Tiempo estimado de salida', MODIFY COLUMN `name` varchar(45) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NULL, - ADD eta datetime NOT NULL COMMENT 'Tiempo estimado de llegada' AFTER etd, - ADD roadmapAddressFk int(11) NOT NULL AFTER `name`; + MODIFY COLUMN driver1Fk int(10) unsigned DEFAULT NULL NULL AFTER driverName, + MODIFY COLUMN driver2Fk int(10) unsigned DEFAULT NULL NULL AFTER driver1Fk, + ADD eta datetime DEFAULT NULL NULL COMMENT 'Tiempo estimado de llegada' AFTER etd, + ADD roadmapAddressFk int(11) DEFAULT NULL NULL AFTER `name`, + ADD dollyPlate varchar(10) DEFAULT NULL AFTER trailerPlate, + ADD tugPlate varchar(10) DEFAULT NULL AFTER dollyPlate, + ADD driverChangeName varchar(45) DEFAULT NULL AFTER driver2Fk, + ADD driverChangeFk int(10) unsigned DEFAULT NULL NULL AFTER driverChangeName; -- Separamos los CHANGE por que si no arriba no se aplican ALTER TABLE vn.roadmap - CHANGE driver1Fk driverFk int(10) unsigned DEFAULT NULL NULL COMMENT 'Conductor principal' AFTER driverName, - CHANGE driver2Fk codriverFk int(10) unsigned DEFAULT NULL NULL COMMENT 'Copiloto' AFTER driverFk, CHANGE userFk editorFk int(10) unsigned DEFAULT NULL NULL AFTER m3; CREATE INDEX roadmap_etd_IDX USING BTREE ON vn.roadmap (etd); diff --git a/db/versions/11416-goldenTulip/02-firstScript.sql b/db/versions/11416-goldenTulip/02-firstScript.sql index f99334e9b9..c729c3de2f 100644 --- a/db/versions/11416-goldenTulip/02-firstScript.sql +++ b/db/versions/11416-goldenTulip/02-firstScript.sql @@ -5,9 +5,11 @@ UPDATE vn.roadmap ALTER TABLE vn.roadmap ADD CONSTRAINT roadmap_roadmapAddress_FK FOREIGN KEY (roadmapAddressFk) REFERENCES vn.roadmapAddress(addressFk) ON DELETE RESTRICT ON UPDATE CASCADE, - ADD CONSTRAINT roadmap_driver_FK FOREIGN KEY (driverFk) + ADD CONSTRAINT roadmap_driver_FK FOREIGN KEY (driver1Fk) REFERENCES vn.worker(id) ON DELETE RESTRICT ON UPDATE CASCADE, - ADD CONSTRAINT roadmap_driver_FK2 FOREIGN KEY (codriverFk) + ADD CONSTRAINT roadmap_driver_FK2 FOREIGN KEY (driver2Fk) + REFERENCES vn.worker(id) ON DELETE RESTRICT ON UPDATE CASCADE, + ADD CONSTRAINT roadmap_driverChange_FK FOREIGN KEY (driverChangeFk) REFERENCES vn.worker(id) ON DELETE RESTRICT ON UPDATE CASCADE, ADD CONSTRAINT roadmap_user_Fk FOREIGN KEY (editorFk) REFERENCES account.user(id) ON DELETE RESTRICT ON UPDATE CASCADE; diff --git a/db/versions/11416-goldenTulip/08-firstScript.sql b/db/versions/11416-goldenTulip/08-firstScript.sql new file mode 100644 index 0000000000..a7fdd5b86e --- /dev/null +++ b/db/versions/11416-goldenTulip/08-firstScript.sql @@ -0,0 +1,2 @@ +ALTER TABLE vn.vehicle + ADD typeFk enum('car','van','truck','trailer','tug', 'tugDolly','dolly') DEFAULT 'van' NOT NULL; From 70d286df805b725fccf67352df0d5a89c255384e Mon Sep 17 00:00:00 2001 From: ivanm Date: Wed, 29 Jan 2025 14:59:19 +0100 Subject: [PATCH 105/149] feat: refs #8487 deprecate travel.appointment --- db/versions/11428-blackArborvitae/00-firstScript.sql | 1 + 1 file changed, 1 insertion(+) create mode 100644 db/versions/11428-blackArborvitae/00-firstScript.sql diff --git a/db/versions/11428-blackArborvitae/00-firstScript.sql b/db/versions/11428-blackArborvitae/00-firstScript.sql new file mode 100644 index 0000000000..4e9aecafa2 --- /dev/null +++ b/db/versions/11428-blackArborvitae/00-firstScript.sql @@ -0,0 +1 @@ +ALTER TABLE vn.travel CHANGE appointment appointment__ datetime DEFAULT NULL COMMENT '@deprecated 2025-01-28'; \ No newline at end of file From 2a7795d432c07c60b215a4b63b72ccd5756e49c9 Mon Sep 17 00:00:00 2001 From: ivanm Date: Wed, 29 Jan 2025 19:24:49 +0100 Subject: [PATCH 106/149] feat: refs #8477 add fee column to awb table --- db/versions/11429-brownBamboo/00-firstScript.sql | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 db/versions/11429-brownBamboo/00-firstScript.sql diff --git a/db/versions/11429-brownBamboo/00-firstScript.sql b/db/versions/11429-brownBamboo/00-firstScript.sql new file mode 100644 index 0000000000..152d4b2e38 --- /dev/null +++ b/db/versions/11429-brownBamboo/00-firstScript.sql @@ -0,0 +1,2 @@ +ALTER TABLE `vn`.`awb` + ADD COLUMN `fee` DECIMAL(10, 2) UNSIGNED DEFAULT NULL; \ No newline at end of file From c96d083467a152c6030083330d86bdb0894e2d04 Mon Sep 17 00:00:00 2001 From: sergiodt Date: Thu, 30 Jan 2025 09:16:54 +0100 Subject: [PATCH 107/149] fix: refs #7920 shelvingFkByCode --- db/routines/vn/procedures/itemShelving_inventory.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/db/routines/vn/procedures/itemShelving_inventory.sql b/db/routines/vn/procedures/itemShelving_inventory.sql index 9ae96c7a89..b2179f4f84 100644 --- a/db/routines/vn/procedures/itemShelving_inventory.sql +++ b/db/routines/vn/procedures/itemShelving_inventory.sql @@ -24,7 +24,7 @@ BEGIN SELECT ish.id, p.pickingOrder, p.code parking, - ish.shelvingFk, + sh.code, ish.itemFk, i.longName, ish.visible, From 123f28055e265645c70b2ef65210a113d0295834 Mon Sep 17 00:00:00 2001 From: guillermo Date: Thu, 30 Jan 2025 09:28:44 +0100 Subject: [PATCH 108/149] feat: refs #8227 Roadmap changes --- db/routines/vn/triggers/roadmap_beforeInsert.sql | 14 ++++++++------ db/routines/vn/triggers/roadmap_beforeUpdate.sql | 13 ++----------- 2 files changed, 10 insertions(+), 17 deletions(-) diff --git a/db/routines/vn/triggers/roadmap_beforeInsert.sql b/db/routines/vn/triggers/roadmap_beforeInsert.sql index a9b837e6b9..bfbb4f8792 100644 --- a/db/routines/vn/triggers/roadmap_beforeInsert.sql +++ b/db/routines/vn/triggers/roadmap_beforeInsert.sql @@ -13,12 +13,8 @@ BEGIN CALL util.throw('Departure time can not be after arrival time'); END IF; - IF NEW.trailerPlate IS NOT NULL THEN - SET NEW.m3 = (SELECT m3 FROM vehicle WHERE numberPlate = NEW.trailerPlate); - END IF; - - IF NEW.tugPlate IS NOT NULL THEN - SET NEW.m3 = NEW.m3 + (SELECT m3 FROM vehicle WHERE numberPlate = NEW.tugPlate); + IF NEW.trailerPlate IS NOT NULL OR NEW.tugPlate IS NOT NULL THEN + SET NEW.m3 = (SELECT SUM(m3) FROM vehicle WHERE numberPlate IN (NEW.trailerPlate, NEW.tugPlate)); END IF; IF NEW.driver1Fk IS NOT NULL THEN @@ -31,5 +27,11 @@ BEGIN LEFT JOIN client c ON c.id = w.id WHERE w.id = NEW.driver1Fk); END IF; + + IF NEW.driverChangeFk IS NOT NULL THEN + SET NEW.driverChangeName = (SELECT CONCAT(w.firstName, ' ', w.lastName) + FROM worker w + WHERE w.id = NEW.driverChangeFk); + END IF; END$$ DELIMITER ; \ No newline at end of file diff --git a/db/routines/vn/triggers/roadmap_beforeUpdate.sql b/db/routines/vn/triggers/roadmap_beforeUpdate.sql index 46065129d1..f888d3a6f0 100644 --- a/db/routines/vn/triggers/roadmap_beforeUpdate.sql +++ b/db/routines/vn/triggers/roadmap_beforeUpdate.sql @@ -13,12 +13,8 @@ BEGIN CALL util.throw('Departure time can not be after arrival time'); END IF; - IF NOT (NEW.trailerPlate <=> OLD.trailerPlate) THEN - SET NEW.m3 = (SELECT m3 FROM vehicle WHERE numberPlate = NEW.trailerPlate); - END IF; - - IF NOT (NEW.tugPlate <=> OLD.tugPlate) THEN - SET NEW.m3 = NEW.m3 + (SELECT m3 FROM vehicle WHERE numberPlate = NEW.tugPlate); + IF NOT (NEW.trailerPlate <=> OLD.trailerPlate) OR NOT (NEW.tugPlate <=> OLD.tugPlate) THEN + SET NEW.m3 = (SELECT SUM(m3) FROM vehicle WHERE numberPlate IN (NEW.trailerPlate, NEW.tugPlate)); END IF; IF NOT (NEW.driverName <=> OLD.driverName) THEN @@ -44,11 +40,6 @@ BEGIN SET NEW.driverChangeName = (SELECT CONCAT(w.firstName, ' ', w.lastName) FROM worker w WHERE w.id = NEW.driverChangeFk); - - SET NEW.phone = (SELECT COALESCE(w.phone, c.mobile, c.phone, c.mobile) - FROM worker w - LEFT JOIN client c ON c.id = w.id - WHERE w.id = NEW.driverChangeFk); END IF; END$$ DELIMITER ; \ No newline at end of file From 77623b489bbd8d3c4c56afc472ddca86dc05ab0a Mon Sep 17 00:00:00 2001 From: jorgep Date: Thu, 30 Jan 2025 10:55:36 +0100 Subject: [PATCH 109/149] feat: refs #7119 add new vehicle --- db/dump/fixtures.before.sql | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/db/dump/fixtures.before.sql b/db/dump/fixtures.before.sql index 695347d617..c409eb692f 100644 --- a/db/dump/fixtures.before.sql +++ b/db/dump/fixtures.before.sql @@ -863,7 +863,8 @@ INSERT INTO `vn`.`vehicle`(`id`, `numberPlate`, `tradeMark`, `model`, `companyFk (3, '2222-IMK', 'STARK INDUSTRIES', 'MARK-VI', 442, 1, 'Iron-Man Heavy Armor MARK-VI', 16, 1, 1, '', '', 442, 2, null), (4, '3333-IMK', 'STARK INDUSTRIES', 'MARK-VII', 442, 1, 'Iron-Man Heavy Armor MARK-VII', 14, 1, 1, '', '', 442, 3, null), (5, '4444-IMK', 'STARK INDUSTRIES', 'MARK-XLII', 442, 1, 'Iron-Man Heavy Armor MARK-XLII', 13, 1, 1, '', '', 442, 4, null), - (6, '5555-IMK', 'STARK INDUSTRIES', 'MARK-XLV', 442, 1, 'Iron-Man Heavy Armor MARK-XLV', 12, 0, 1, '', '', 442, 5, null); + (6, '5555-IMK', 'STARK INDUSTRIES', 'MARK-XLV', 442, 1, 'Iron-Man Heavy Armor MARK-XLV', 12, 0, 1, '', '', 442, 5, null), + (7, '5555-SHI', 'SHIELD', 'Quinjet', 442, 1, 'High-speed jet used by the Avengers', 30, 1, 1, 'QJ12345', 'SHIELD leasing', 1, 1, 1); INSERT INTO `vn`.`config`(`id`, `mdbServer`, `fakeEmail`, `defaultersMaxAmount`, `inventoried`) VALUES From 0a89a6a6fdb366e944ad6c8527c5dde86f21ba94 Mon Sep 17 00:00:00 2001 From: Jon Date: Thu, 30 Jan 2025 12:40:48 +0100 Subject: [PATCH 110/149] fix: refs #7488 deleted nif validation --- modules/worker/back/models/worker.js | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/modules/worker/back/models/worker.js b/modules/worker/back/models/worker.js index 97e6a283c3..4895a6107f 100644 --- a/modules/worker/back/models/worker.js +++ b/modules/worker/back/models/worker.js @@ -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(); - } }; From 855600811e15a752a1df1c4f629f5a3ab6bacdc5 Mon Sep 17 00:00:00 2001 From: guillermo Date: Thu, 30 Jan 2025 15:00:19 +0100 Subject: [PATCH 111/149] feat: refs #8227 Roadmap changes --- .../vn/triggers/roadmapStop_beforeDelete.sql | 21 ++++++++++++++++++ .../vn/triggers/roadmapStop_beforeInsert.sql | 22 +++++++++++++++++-- .../vn/triggers/roadmapStop_beforeUpdate.sql | 18 ++++++++++++++- .../vn/triggers/roadmap_beforeInsert.sql | 4 ---- .../vn/triggers/roadmap_beforeUpdate.sql | 4 ---- 5 files changed, 58 insertions(+), 11 deletions(-) create mode 100644 db/routines/vn/triggers/roadmapStop_beforeDelete.sql diff --git a/db/routines/vn/triggers/roadmapStop_beforeDelete.sql b/db/routines/vn/triggers/roadmapStop_beforeDelete.sql new file mode 100644 index 0000000000..3449e56218 --- /dev/null +++ b/db/routines/vn/triggers/roadmapStop_beforeDelete.sql @@ -0,0 +1,21 @@ +DELIMITER $$ +CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `vn`.`roadmapStop_beforeDelete` + BEFORE DELETE ON `roadmapStop` + FOR EACH ROW +BEGIN + DECLARE vMaxEta DATETIME; + + IF OLD.roadmapFk IS NOT NULL THEN + SELECT MAX(eta) INTO vMaxEta + FROM roadmapStop + WHERE roadmapFk = OLD.roadmapFk + AND id <> OLD.id; + + IF OLD.eta > vMaxEta OR vMaxEta IS NULL THEN + UPDATE roadmap + SET eta = COALESCE(vMaxEta, OLD.eta) + WHERE id = OLD.roadmapFk; + END IF; + END IF; +END$$ +DELIMITER ; diff --git a/db/routines/vn/triggers/roadmapStop_beforeInsert.sql b/db/routines/vn/triggers/roadmapStop_beforeInsert.sql index 9ec8b72cfa..00d17fcced 100644 --- a/db/routines/vn/triggers/roadmapStop_beforeInsert.sql +++ b/db/routines/vn/triggers/roadmapStop_beforeInsert.sql @@ -3,12 +3,30 @@ CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `vn`.`roadmapStop_beforeInser BEFORE INSERT ON `roadmapStop` FOR EACH ROW BEGIN + DECLARE vMaxEta DATETIME; + SET NEW.editorFk = account.myUser_getId(); - SET NEW.description = UCASE(NEW.description); + + IF NEW.description IS NOT NULL THEN + SET NEW.description = UCASE(NEW.description); + END IF; + IF NEW.roadmapFk IS NOT NULL THEN IF NEW.eta < (SELECT etd FROM roadmap WHERE id = NEW.roadmapFk) THEN CALL util.throw('Departure time can not be after arrival time'); END IF; END IF; + + IF NEW.roadmapFk IS NOT NULL AND NEW.eta IS NOT NULL THEN + SELECT MAX(eta) INTO vMaxEta + FROM roadmapStop + WHERE roadmapFk = NEW.roadmapFk; + + IF NEW.eta > vMaxEta OR vMaxEta IS NOT NULL THEN + UPDATE roadmap + SET eta = GREATEST(COALESCE(vMaxEta, NEW.eta), NEW.eta) + WHERE id = NEW.roadmapFk; + END IF; + END IF; END$$ -DELIMITER ; +DELIMITER ; \ No newline at end of file diff --git a/db/routines/vn/triggers/roadmapStop_beforeUpdate.sql b/db/routines/vn/triggers/roadmapStop_beforeUpdate.sql index cff48846ae..0560ed5eb1 100644 --- a/db/routines/vn/triggers/roadmapStop_beforeUpdate.sql +++ b/db/routines/vn/triggers/roadmapStop_beforeUpdate.sql @@ -3,14 +3,30 @@ CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `vn`.`roadmapStop_beforeUpdat BEFORE UPDATE ON `roadmapStop` FOR EACH ROW BEGIN + DECLARE vMaxEta DATETIME; + SET NEW.editorFk = account.myUser_getId(); - SET NEW.description = UCASE(NEW.description); + + IF NOT (NEW.description <=> OLD.description) THEN + SET NEW.description = UCASE(NEW.description); + END IF; + IF (NOT (NEW.roadmapFk <=> OLD.roadmapFk) AND NEW.roadmapFk IS NOT NULL) OR (NOT (NEW.eta <=> OLD.eta) AND NEW.eta IS NOT NULL) THEN IF NEW.eta < (SELECT etd FROM roadmap WHERE id = NEW.roadmapFk) THEN CALL util.throw('Departure time can not be after arrival time'); END IF; + + SELECT MAX(eta) INTO vMaxEta + FROM roadmapStop + WHERE roadmapFk = NEW.roadmapFk; + + IF NEW.eta > vMaxEta OR vMaxEta IS NULL THEN + UPDATE roadmap + SET eta = COALESCE(vMaxEta, NEW.eta) + WHERE id = NEW.roadmapFk; + END IF; END IF; END$$ DELIMITER ; diff --git a/db/routines/vn/triggers/roadmap_beforeInsert.sql b/db/routines/vn/triggers/roadmap_beforeInsert.sql index bfbb4f8792..4dd9e686ce 100644 --- a/db/routines/vn/triggers/roadmap_beforeInsert.sql +++ b/db/routines/vn/triggers/roadmap_beforeInsert.sql @@ -9,10 +9,6 @@ BEGIN SET NEW.name = UCASE(NEW.name); END IF; - IF NEW.etd > NEW.eta AND NEW.etd IS NOT NULL AND NEW.eta IS NOT NULL THEN - CALL util.throw('Departure time can not be after arrival time'); - END IF; - IF NEW.trailerPlate IS NOT NULL OR NEW.tugPlate IS NOT NULL THEN SET NEW.m3 = (SELECT SUM(m3) FROM vehicle WHERE numberPlate IN (NEW.trailerPlate, NEW.tugPlate)); END IF; diff --git a/db/routines/vn/triggers/roadmap_beforeUpdate.sql b/db/routines/vn/triggers/roadmap_beforeUpdate.sql index f888d3a6f0..4f355915bc 100644 --- a/db/routines/vn/triggers/roadmap_beforeUpdate.sql +++ b/db/routines/vn/triggers/roadmap_beforeUpdate.sql @@ -9,10 +9,6 @@ BEGIN SET NEW.name = UCASE(NEW.name); END IF; - IF NEW.etd > NEW.eta AND NEW.etd IS NOT NULL AND NEW.eta IS NOT NULL THEN - CALL util.throw('Departure time can not be after arrival time'); - END IF; - IF NOT (NEW.trailerPlate <=> OLD.trailerPlate) OR NOT (NEW.tugPlate <=> OLD.tugPlate) THEN SET NEW.m3 = (SELECT SUM(m3) FROM vehicle WHERE numberPlate IN (NEW.trailerPlate, NEW.tugPlate)); END IF; From e0e72272a73b4c5c81a20ba37f20edc20eb9828b Mon Sep 17 00:00:00 2001 From: ivanm Date: Thu, 30 Jan 2025 17:35:30 +0100 Subject: [PATCH 112/149] feat: refs #8312 change column name --- db/versions/11427-azureChico/00-firstScript.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/db/versions/11427-azureChico/00-firstScript.sql b/db/versions/11427-azureChico/00-firstScript.sql index 8c232efccb..34a8c8d14a 100644 --- a/db/versions/11427-azureChico/00-firstScript.sql +++ b/db/versions/11427-azureChico/00-firstScript.sql @@ -1,2 +1,2 @@ ALTER TABLE vn.packaging - ADD COLUMN rejectCost decimal(10, 2) NOT NULL DEFAULT 0.00 \ No newline at end of file + ADD COLUMN flippingCost decimal(10, 2) NOT NULL DEFAULT 0.00 \ No newline at end of file From be93ea3a0713d52d005aad63e9b89984ec381a03 Mon Sep 17 00:00:00 2001 From: sergiodt Date: Thu, 30 Jan 2025 17:55:10 +0100 Subject: [PATCH 113/149] fix: refs #6964 visibleGreaterThanZero --- .../item-shelving/getItemsByReviewOrder.js | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/modules/item/back/methods/item-shelving/getItemsByReviewOrder.js b/modules/item/back/methods/item-shelving/getItemsByReviewOrder.js index 7a960a8c8f..7154565119 100644 --- a/modules/item/back/methods/item-shelving/getItemsByReviewOrder.js +++ b/modules/item/back/methods/item-shelving/getItemsByReviewOrder.js @@ -52,7 +52,9 @@ module.exports = Self => { JOIN vn.shelving sh ON sh.id = is2.shelvingFk LEFT JOIN vn.parking p ON p.id = sh.parkingFk LEFT JOIN vn.sector s ON s.id = p.sectorFk - WHERE sh.code = ? AND (? IS NULL OR is2.itemFk = ?) + WHERE sh.code = ? + AND (? IS NULL OR is2.itemFk = ?) + AND is2.visible > 0 ), itemShelvings AS ( SELECT is2.itemFk, is2.created, sh.code, p.pickingOrder, p.code AS parkingFk @@ -61,15 +63,16 @@ module.exports = Self => { JOIN vn.shelving sh ON sh.id = is2.shelvingFk AND ai.code <> sh.code JOIN vn.parking p ON p.id = sh.parkingFk JOIN vn.sector s ON s.id = p.sectorFk + WHERE is2.visible > 0 ), parkingDestiny AS ( SELECT ? AS pickingOrder ) SELECT ish.*, - CASE - WHEN ish.pickingOrder < d.pickingOrder AND aish.created < ish.created + CASE + WHEN ish.pickingOrder < d.pickingOrder AND aish.created < ish.created AND ABS(TIMESTAMPDIFF(HOUR, aish.created, ish.created)) > ? THEN "old" - WHEN ish.pickingOrder > d.pickingOrder AND aish.created > ish.created + WHEN ish.pickingOrder > d.pickingOrder AND aish.created > ish.created AND ABS(TIMESTAMPDIFF(HOUR, aish.created, ish.created)) > ? THEN "new" END AS itemCreated FROM itemShelvings ish @@ -77,8 +80,8 @@ module.exports = Self => { JOIN currentItemShelving aish ON ish.itemFk = aish.itemFk WHERE ABS(TIMESTAMPDIFF(HOUR, aish.created, ish.created)) > ? AND ( - (ish.pickingOrder < d.pickingOrder AND aish.created < ish.created) - OR + (ish.pickingOrder < d.pickingOrder AND aish.created < ish.created) + OR (ish.pickingOrder > d.pickingOrder AND aish.created > ish.created) ); `, From 148072b39ddb08108fc7a659b2e4dd67f8e6eb19 Mon Sep 17 00:00:00 2001 From: ivanm Date: Thu, 30 Jan 2025 17:58:39 +0100 Subject: [PATCH 114/149] feat: refs #8477 change column name and add comment --- db/versions/11429-brownBamboo/00-firstScript.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/db/versions/11429-brownBamboo/00-firstScript.sql b/db/versions/11429-brownBamboo/00-firstScript.sql index 152d4b2e38..726856e767 100644 --- a/db/versions/11429-brownBamboo/00-firstScript.sql +++ b/db/versions/11429-brownBamboo/00-firstScript.sql @@ -1,2 +1,2 @@ ALTER TABLE `vn`.`awb` - ADD COLUMN `fee` DECIMAL(10, 2) UNSIGNED DEFAULT NULL; \ No newline at end of file + ADD COLUMN `costPerKg` DECIMAL(10, 2) UNSIGNED DEFAULT NULL COMMENT 'Tarifa que indica a cuanto cuesta el kilo en ese vuelo'; \ No newline at end of file From 672ef36501a9e96c7ffef7540360e6b5a2e811cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Andr=C3=A9s?= Date: Thu, 30 Jan 2025 18:11:30 +0100 Subject: [PATCH 115/149] fix: refs #8511 ref #8511 ensure entry is editable for new entryFk in buy_beforeUpdate trigger --- db/routines/vn/triggers/buy_beforeUpdate.sql | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/db/routines/vn/triggers/buy_beforeUpdate.sql b/db/routines/vn/triggers/buy_beforeUpdate.sql index 24246329bc..c67d44f6f3 100644 --- a/db/routines/vn/triggers/buy_beforeUpdate.sql +++ b/db/routines/vn/triggers/buy_beforeUpdate.sql @@ -20,6 +20,7 @@ trig:BEGIN THEN CALL entry_isEditable(OLD.entryFk); + CALL entry_isEditable(NEW.entryFk); END IF; SET NEW.editorFk = account.myUser_getId(); @@ -88,11 +89,11 @@ trig:BEGIN SET NEW.buyerFk = vBuyerFk; END IF; - IF NOT (NEW.itemFk <=> OLD.itemFk) OR - NOT (OLD.entryFk <=> NEW.entryFk) THEN + IF NOT (NEW.itemFk <=> OLD.itemFk) OR + NOT (OLD.entryFk <=> NEW.entryFk) THEN CREATE OR REPLACE TEMPORARY TABLE tmp.buysToCheck SELECT NEW.id; - CALL buy_checkItem(); + CALL buy_checkItem(); END IF; END$$ DELIMITER ; From 1e18e48f8cbed7996c618aa4dc052723fe3c9f00 Mon Sep 17 00:00:00 2001 From: robert Date: Fri, 31 Jan 2025 07:09:42 +0100 Subject: [PATCH 116/149] feat: refs #6702 es.json delete changes --- loopback/locale/es.json | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/loopback/locale/es.json b/loopback/locale/es.json index eb5b9a90ad..c730d662a1 100644 --- a/loopback/locale/es.json +++ b/loopback/locale/es.json @@ -123,7 +123,7 @@ "Added sale to ticket": "He añadido la siguiente linea al ticket [{{ticketId}}]({{{ticketUrl}}}): {{{addition}}}", "Changed sale discount": "He cambiado el descuento de las siguientes lineas al ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", "Created claim": "He creado la reclamación [{{claimId}}]({{{claimUrl}}}) de las siguientes lineas del ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", - "Changed sale price": "He cambiado el precio de [{{itemId}} {{concept}}]({{{itemUrl}}}) ({{quantity}}) de {{oldPrice}}€ ➔ *{{newPrice}}€* del ticket [{{ticketId}}]({{{ticketUrl}}}) {{ticketWeekly}} ", + "Changed sale price": "He cambiado el precio de [{{itemId}} {{concept}}]({{{itemUrl}}}) ({{quantity}}) de {{oldPrice}}€ ➔ *{{newPrice}}€* del ticket [{{ticketId}}]({{{ticketUrl}}})", "Changed sale quantity": "He cambiado {{changes}} del ticket [{{ticketId}}]({{{ticketUrl}}})", "Changes in sales": "la cantidad de [{{itemId}} {{concept}}]({{{itemUrl}}}) de {{oldQuantity}} ➔ *{{newQuantity}}*", "State": "Estado", @@ -393,7 +393,5 @@ "There are tickets to be invoiced": "Hay tickets para esta zona, borralos primero", "Price cannot be blank": "Price cannot be blank", "An item type with the same code already exists": "Un tipo con el mismo código ya existe", - "Holidays to past days not available": "Las vacaciones a días pasados no están disponibles", - "Is cloned from": "Is cloned from", - "Is cloned from ticket {{ticketWeekly}} de": "Is cloned from ticket {{ticketWeekly}} de" + "Holidays to past days not available": "Las vacaciones a días pasados no están disponibles" } From 948bdbd2c6d1e2dd85f12bb1e215b7eb53082537 Mon Sep 17 00:00:00 2001 From: robert Date: Fri, 31 Jan 2025 08:19:39 +0100 Subject: [PATCH 117/149] feat: refs #6702 refs #6701 changes --- loopback/locale/en.json | 7 ++++--- loopback/locale/es.json | 8 +++++--- modules/ticket/back/methods/sale/updatePrice.js | 3 ++- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/loopback/locale/en.json b/loopback/locale/en.json index 06428475fc..4906288be7 100644 --- a/loopback/locale/en.json +++ b/loopback/locale/en.json @@ -60,7 +60,7 @@ "Added sale to ticket": "I have added the following line to the ticket [{{ticketId}}]({{{ticketUrl}}}): {{{addition}}}", "Changed sale discount": "I have changed the following lines discounts from the ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", "Created claim": "I have created the claim [{{claimId}}]({{{claimUrl}}}) for the following lines from the ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", - "Changed sale price": "I have changed the price of [{{itemId}} {{concept}}]({{{itemUrl}}}) ({{quantity}}) from {{oldPrice}}€ ➔ *{{newPrice}}€* of the ticket [{{ticketId}}]({{{ticketUrl}}})", + "Changed sale price": "I have changed the price of [{{itemId}} {{concept}}]({{{itemUrl}}}) ({{quantity}}) from {{oldPrice}}€ ➔ *{{newPrice}}€* of the ticket [{{ticketId}}]({{{ticketUrl}}}). {{ticketWeekly}}", "Changed sale quantity": "I have changed {{changes}} of the ticket [{{ticketId}}]({{{ticketUrl}}})", "Changes in sales": "the quantity of [{{itemId}} {{concept}}]({{{itemUrl}}}) from {{oldQuantity}} ➔ *{{newQuantity}}*", "Changed sale reserved state": "I have changed the following lines reserved state from the ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", @@ -253,5 +253,6 @@ "Sales already moved": "Sales already moved", "Holidays to past days not available": "Holidays to past days not available", "Incorrect delivery order alert on route": "Incorrect delivery order alert on route: {{ route }} zone: {{ zone }}", - "Ticket has been delivered out of order": "The ticket {{ticket}} {{{fullUrl}}} has been delivered out of order." -} \ No newline at end of file + "Ticket has been delivered out of order": "The ticket {{ticket}} {{{fullUrl}}} has been delivered out of order.", + "clonedFromTicketWeekly": "Is cloned from ticket: {{ticketWeekly}}" +} diff --git a/loopback/locale/es.json b/loopback/locale/es.json index f79dad236e..a2b6c52155 100644 --- a/loopback/locale/es.json +++ b/loopback/locale/es.json @@ -123,7 +123,7 @@ "Added sale to ticket": "He añadido la siguiente linea al ticket [{{ticketId}}]({{{ticketUrl}}}): {{{addition}}}", "Changed sale discount": "He cambiado el descuento de las siguientes lineas al ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", "Created claim": "He creado la reclamación [{{claimId}}]({{{claimUrl}}}) de las siguientes lineas del ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", - "Changed sale price": "He cambiado el precio de [{{itemId}} {{concept}}]({{{itemUrl}}}) ({{quantity}}) de {{oldPrice}}€ ➔ *{{newPrice}}€* del ticket [{{ticketId}}]({{{ticketUrl}}})", + "Changed sale price": "He cambiado el precio de [{{itemId}} {{concept}}]({{{itemUrl}}}) ({{quantity}}) de {{oldPrice}}€ ➔ *{{newPrice}}€* del ticket [{{ticketId}}]({{{ticketUrl}}}). {{ticketWeekly}} ", "Changed sale quantity": "He cambiado {{changes}} del ticket [{{ticketId}}]({{{ticketUrl}}})", "Changes in sales": "la cantidad de [{{itemId}} {{concept}}]({{{itemUrl}}}) de {{oldQuantity}} ➔ *{{newQuantity}}*", "State": "Estado", @@ -396,5 +396,7 @@ "There are tickets to be invoiced": "La zona tiene tickets por facturar", "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" -} + "Price cannot be blank": "El precio no puede estar en blanco", + "clonedFromTicketWeekly": "Está clonado del ticket {{ticketWeekly}}", + "ticketWeekly": "ticketWeekly" +} \ No newline at end of file diff --git a/modules/ticket/back/methods/sale/updatePrice.js b/modules/ticket/back/methods/sale/updatePrice.js index 0112432314..4ad4312428 100644 --- a/modules/ticket/back/methods/sale/updatePrice.js +++ b/modules/ticket/back/methods/sale/updatePrice.js @@ -114,6 +114,7 @@ module.exports = Self => { if (salesPerson) { const url = await Self.app.models.Url.getUrl(); const ticketWeekly = await models.Sale.ticketWeekly(sale.id); + console.log('ticketWeekly: ', ticketWeekly); const message = $t('Changed sale price', { ticketId: sale.ticket().id, @@ -124,7 +125,7 @@ module.exports = Self => { newPrice: newPrice, ticketUrl: `${url}ticket/${sale.ticket().id}/sale`, itemUrl: `${url}item/${sale.itemFk}/summary`, - ticketWeekly: ticketWeekly ? $t('Is cloned from ticket {{ticketWeekly}}', {ticketWeekly}) : null + ticketWeekly: ticketWeekly ? $t('ticketWeekly', {ticketWeekly}) : null }); await models.Chat.sendCheckingPresence(ctx, salesPerson.id, message, myOptions); } From 53ee0c16170f0e133b33a98fc878801940c4989e Mon Sep 17 00:00:00 2001 From: Jon Date: Fri, 31 Jan 2025 09:17:15 +0100 Subject: [PATCH 118/149] fix: fixed country field --- modules/client/back/methods/client/filter.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/client/back/methods/client/filter.js b/modules/client/back/methods/client/filter.js index 7df973f193..c217b2a86c 100644 --- a/modules/client/back/methods/client/filter.js +++ b/modules/client/back/methods/client/filter.js @@ -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 ` ); From da5e395450626fd9823eb014d88e02e874b8bf9b Mon Sep 17 00:00:00 2001 From: ivanm Date: Fri, 31 Jan 2025 10:17:01 +0100 Subject: [PATCH 119/149] feat: refs #8312 add flippingCost column to Cubos view --- db/routines/vn2008/views/Cubos.sql | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/db/routines/vn2008/views/Cubos.sql b/db/routines/vn2008/views/Cubos.sql index 1b23af4fc9..7ca82e66e8 100644 --- a/db/routines/vn2008/views/Cubos.sql +++ b/db/routines/vn2008/views/Cubos.sql @@ -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` From 5c4f31e6af867f2182e962d61d48ef33c5e2fa00 Mon Sep 17 00:00:00 2001 From: jtubau Date: Fri, 31 Jan 2025 10:25:43 +0100 Subject: [PATCH 120/149] refactor: refs #7537 address display all digits in black in driver route report --- print/templates/reports/driver-route/driver-route.html | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/print/templates/reports/driver-route/driver-route.html b/print/templates/reports/driver-route/driver-route.html index e3a206656e..8e69d6c658 100644 --- a/print/templates/reports/driver-route/driver-route.html +++ b/print/templates/reports/driver-route/driver-route.html @@ -90,8 +90,7 @@ {{ticket.id}} {{ticket.clientFk}} {{ticket.addressName}} - {{ticket.addressFk.toString().substr(0, ticket.addressFk.toString().length - 3)}} - {{ticket.addressFk.toString().substr(-3, 3)}} + {{ticket.addressFk.toString()}} {{ticket.packages}} {{ticket.itemPackingTypes}} From f437b3285a81d5652bd1244451b11b91b8097eef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Andr=C3=A9s?= Date: Fri, 31 Jan 2025 09:34:44 +0000 Subject: [PATCH 121/149] Actualizar print/templates/reports/invoice-incoterms/sql/incoterms.sql --- print/templates/reports/invoice-incoterms/sql/incoterms.sql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/print/templates/reports/invoice-incoterms/sql/incoterms.sql b/print/templates/reports/invoice-incoterms/sql/incoterms.sql index 5354516745..77a7daad11 100644 --- a/print/templates/reports/invoice-incoterms/sql/incoterms.sql +++ b/print/templates/reports/invoice-incoterms/sql/incoterms.sql @@ -1,9 +1,9 @@ WITH tickets AS( -SELECT id, addressFk, packages, refFk +SELECT id, addressFk, packages, refFk, weight FROM vn.ticket WHERE refFk = ? ), volume AS( -SELECT SUM(volume) volume, MAX(weight)weight +SELECT SUM(sv.volume) volume, MAX(t.weight)weight FROM tickets t JOIN vn.saleVolume sv ON sv.ticketFk = t.id ), intrastat AS( From b40f145613220e92635de22a4739eeaae91c4b14 Mon Sep 17 00:00:00 2001 From: guillermo Date: Fri, 31 Jan 2025 10:57:44 +0100 Subject: [PATCH 122/149] feat: refs #8227 Roadmap changes --- .../vn/triggers/roadmapStop_beforeDelete.sql | 13 +++++++++---- .../vn/triggers/roadmapStop_beforeInsert.sql | 12 ++++++------ .../vn/triggers/roadmapStop_beforeUpdate.sql | 18 ++++++++++++++---- 3 files changed, 29 insertions(+), 14 deletions(-) diff --git a/db/routines/vn/triggers/roadmapStop_beforeDelete.sql b/db/routines/vn/triggers/roadmapStop_beforeDelete.sql index 3449e56218..f0faeb8bef 100644 --- a/db/routines/vn/triggers/roadmapStop_beforeDelete.sql +++ b/db/routines/vn/triggers/roadmapStop_beforeDelete.sql @@ -4,18 +4,23 @@ CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `vn`.`roadmapStop_beforeDelet FOR EACH ROW BEGIN DECLARE vMaxEta DATETIME; + DECLARE vRoadmapEta DATETIME; IF OLD.roadmapFk IS NOT NULL THEN - SELECT MAX(eta) INTO vMaxEta + SELECT MAX(eta) INTO vMaxEta FROM roadmapStop WHERE roadmapFk = OLD.roadmapFk AND id <> OLD.id; - IF OLD.eta > vMaxEta OR vMaxEta IS NULL THEN + SELECT eta INTO vRoadmapEta + FROM roadmap + WHERE id = OLD.roadmapFk; + + IF vMaxEta <> vRoadmapEta OR vMaxEta IS NULL THEN UPDATE roadmap - SET eta = COALESCE(vMaxEta, OLD.eta) + SET eta = vMaxEta WHERE id = OLD.roadmapFk; END IF; END IF; END$$ -DELIMITER ; +DELIMITER ; \ No newline at end of file diff --git a/db/routines/vn/triggers/roadmapStop_beforeInsert.sql b/db/routines/vn/triggers/roadmapStop_beforeInsert.sql index 00d17fcced..012702f3ed 100644 --- a/db/routines/vn/triggers/roadmapStop_beforeInsert.sql +++ b/db/routines/vn/triggers/roadmapStop_beforeInsert.sql @@ -3,7 +3,7 @@ CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `vn`.`roadmapStop_beforeInser BEFORE INSERT ON `roadmapStop` FOR EACH ROW BEGIN - DECLARE vMaxEta DATETIME; + DECLARE vRoadmapEta DATETIME; SET NEW.editorFk = account.myUser_getId(); @@ -18,13 +18,13 @@ BEGIN END IF; IF NEW.roadmapFk IS NOT NULL AND NEW.eta IS NOT NULL THEN - SELECT MAX(eta) INTO vMaxEta - FROM roadmapStop - WHERE roadmapFk = NEW.roadmapFk; + SELECT eta INTO vRoadmapEta + FROM roadmap + WHERE id = NEW.roadmapFk; - IF NEW.eta > vMaxEta OR vMaxEta IS NOT NULL THEN + IF vRoadmapEta < NEW.eta OR vRoadmapEta IS NULL THEN UPDATE roadmap - SET eta = GREATEST(COALESCE(vMaxEta, NEW.eta), NEW.eta) + SET eta = NEW.eta WHERE id = NEW.roadmapFk; END IF; END IF; diff --git a/db/routines/vn/triggers/roadmapStop_beforeUpdate.sql b/db/routines/vn/triggers/roadmapStop_beforeUpdate.sql index 0560ed5eb1..d9016a1708 100644 --- a/db/routines/vn/triggers/roadmapStop_beforeUpdate.sql +++ b/db/routines/vn/triggers/roadmapStop_beforeUpdate.sql @@ -4,6 +4,7 @@ CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `vn`.`roadmapStop_beforeUpdat FOR EACH ROW BEGIN DECLARE vMaxEta DATETIME; + DECLARE vCurrentEta DATETIME; SET NEW.editorFk = account.myUser_getId(); @@ -18,13 +19,22 @@ BEGIN CALL util.throw('Departure time can not be after arrival time'); END IF; - SELECT MAX(eta) INTO vMaxEta + SELECT MAX(eta) INTO vMaxEta FROM roadmapStop - WHERE roadmapFk = NEW.roadmapFk; + WHERE roadmapFk = NEW.roadmapFk + AND id <> OLD.id; - IF NEW.eta > vMaxEta OR vMaxEta IS NULL THEN + IF vMaxEta IS NULL OR NEW.eta > vMaxEta THEN + SET vMaxEta = NEW.eta; + END IF; + + SELECT eta INTO vCurrentEta + FROM roadmap + WHERE id = NEW.roadmapFk; + + IF vMaxEta <> vCurrentEta THEN UPDATE roadmap - SET eta = COALESCE(vMaxEta, NEW.eta) + SET eta = vMaxEta WHERE id = NEW.roadmapFk; END IF; END IF; From fa9b9cc5a3e46b45f7e116e63a6df19e8701151d Mon Sep 17 00:00:00 2001 From: ivanm Date: Fri, 31 Jan 2025 11:06:24 +0100 Subject: [PATCH 123/149] feat: refs #8312 modify fixtures.before --- db/dump/fixtures.before.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/db/dump/fixtures.before.sql b/db/dump/fixtures.before.sql index b7197d1db9..c08938f043 100644 --- a/db/dump/fixtures.before.sql +++ b/db/dump/fixtures.before.sql @@ -3207,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 From 2e4c5fe40173352479ce17f2a985952b588ebfb1 Mon Sep 17 00:00:00 2001 From: ivanm Date: Fri, 31 Jan 2025 12:10:19 +0100 Subject: [PATCH 124/149] feat: refs #8477 add costPerKg to awb view --- db/routines/vn2008/views/awb.sql | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/db/routines/vn2008/views/awb.sql b/db/routines/vn2008/views/awb.sql index 0105962880..a325718888 100644 --- a/db/routines/vn2008/views/awb.sql +++ b/db/routines/vn2008/views/awb.sql @@ -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` From 9d3a4257b78ada65061961f4d970d0ae27790fe3 Mon Sep 17 00:00:00 2001 From: robert Date: Fri, 31 Jan 2025 12:53:48 +0100 Subject: [PATCH 125/149] feat: refs #6702 translations --- loopback/locale/en.json | 8 ++++---- loopback/locale/es.json | 11 +++++------ modules/ticket/back/methods/sale/updatePrice.js | 3 +-- modules/ticket/back/methods/sale/updateQuantity.js | 2 ++ modules/ticket/back/methods/ticket/updateDiscount.js | 6 +++++- 5 files changed, 17 insertions(+), 13 deletions(-) diff --git a/loopback/locale/en.json b/loopback/locale/en.json index 4906288be7..ea2d83dbc3 100644 --- a/loopback/locale/en.json +++ b/loopback/locale/en.json @@ -58,10 +58,10 @@ "Swift / BIC can't be empty": "Swift / BIC can't be empty", "Deleted sales from ticket": "I have deleted the following lines from the ticket [{{ticketId}}]({{{ticketUrl}}}): {{{deletions}}}", "Added sale to ticket": "I have added the following line to the ticket [{{ticketId}}]({{{ticketUrl}}}): {{{addition}}}", - "Changed sale discount": "I have changed the following lines discounts from the ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", + "Changed sale discount": "I have changed the following lines discounts from the ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}} {{ticketWeekly}}", "Created claim": "I have created the claim [{{claimId}}]({{{claimUrl}}}) for the following lines from the ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", - "Changed sale price": "I have changed the price of [{{itemId}} {{concept}}]({{{itemUrl}}}) ({{quantity}}) from {{oldPrice}}€ ➔ *{{newPrice}}€* of the ticket [{{ticketId}}]({{{ticketUrl}}}). {{ticketWeekly}}", - "Changed sale quantity": "I have changed {{changes}} of the ticket [{{ticketId}}]({{{ticketUrl}}})", + "Changed sale price": "I have changed the price of [{{itemId}} {{concept}}]({{{itemUrl}}}) ({{quantity}}) from {{oldPrice}}€ ➔ *{{newPrice}}€* of the ticket [{{ticketId}}]({{{ticketUrl}}}) {{ticketWeekly}}", + "Changed sale quantity": "I have changed {{changes}} of the ticket [{{ticketId}}]({{{ticketUrl}}}) {{ticketWeekly}}", "Changes in sales": "the quantity of [{{itemId}} {{concept}}]({{{itemUrl}}}) from {{oldQuantity}} ➔ *{{newQuantity}}*", "Changed sale reserved state": "I have changed the following lines reserved state from the ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", "Bought units from buy request": "Bought {{quantity}} units of [{{itemId}} {{concept}}]({{{urlItem}}}) for the ticket id [{{ticketId}}]({{{url}}})", @@ -254,5 +254,5 @@ "Holidays to past days not available": "Holidays to past days not available", "Incorrect delivery order alert on route": "Incorrect delivery order alert on route: {{ route }} zone: {{ zone }}", "Ticket has been delivered out of order": "The ticket {{ticket}} {{{fullUrl}}} has been delivered out of order.", - "clonedFromTicketWeekly": "Is cloned from ticket: {{ticketWeekly}}" + "clonedFromTicketWeekly": ", that is a cloned sale from ticket {{ ticketWeekly }}" } diff --git a/loopback/locale/es.json b/loopback/locale/es.json index a2b6c52155..c3035585b3 100644 --- a/loopback/locale/es.json +++ b/loopback/locale/es.json @@ -121,10 +121,10 @@ "Incoterms is required for a non UEE member": "El incoterms es requerido para los clientes extracomunitarios", "Deleted sales from ticket": "He eliminado las siguientes lineas del ticket [{{ticketId}}]({{{ticketUrl}}}): {{{deletions}}}", "Added sale to ticket": "He añadido la siguiente linea al ticket [{{ticketId}}]({{{ticketUrl}}}): {{{addition}}}", - "Changed sale discount": "He cambiado el descuento de las siguientes lineas al ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", + "Changed sale discount": "He cambiado el descuento de las siguientes lineas al ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}} {{ticketWeekly}}", "Created claim": "He creado la reclamación [{{claimId}}]({{{claimUrl}}}) de las siguientes lineas del ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", - "Changed sale price": "He cambiado el precio de [{{itemId}} {{concept}}]({{{itemUrl}}}) ({{quantity}}) de {{oldPrice}}€ ➔ *{{newPrice}}€* del ticket [{{ticketId}}]({{{ticketUrl}}}). {{ticketWeekly}} ", - "Changed sale quantity": "He cambiado {{changes}} del ticket [{{ticketId}}]({{{ticketUrl}}})", + "Changed sale price": "He cambiado el precio de [{{itemId}} {{concept}}]({{{itemUrl}}}) ({{quantity}}) de {{oldPrice}}€ ➔ *{{newPrice}}€* del ticket [{{ticketId}}]({{{ticketUrl}}}) {{ticketWeekly}} ", + "Changed sale quantity": "He cambiado {{changes}} del ticket [{{ticketId}}]({{{ticketUrl}}}) {{ticketWeekly}}", "Changes in sales": "la cantidad de [{{itemId}} {{concept}}]({{{itemUrl}}}) de {{oldQuantity}} ➔ *{{newQuantity}}*", "State": "Estado", "regular": "normal", @@ -397,6 +397,5 @@ "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", - "clonedFromTicketWeekly": "Está clonado del ticket {{ticketWeekly}}", - "ticketWeekly": "ticketWeekly" -} \ No newline at end of file + "clonedFromTicketWeekly": ", que es una linea clonada del ticket {{ticketWeekly}}" +} diff --git a/modules/ticket/back/methods/sale/updatePrice.js b/modules/ticket/back/methods/sale/updatePrice.js index 4ad4312428..c51cef6f5e 100644 --- a/modules/ticket/back/methods/sale/updatePrice.js +++ b/modules/ticket/back/methods/sale/updatePrice.js @@ -114,7 +114,6 @@ module.exports = Self => { if (salesPerson) { const url = await Self.app.models.Url.getUrl(); const ticketWeekly = await models.Sale.ticketWeekly(sale.id); - console.log('ticketWeekly: ', ticketWeekly); const message = $t('Changed sale price', { ticketId: sale.ticket().id, @@ -125,7 +124,7 @@ module.exports = Self => { newPrice: newPrice, ticketUrl: `${url}ticket/${sale.ticket().id}/sale`, itemUrl: `${url}item/${sale.itemFk}/summary`, - ticketWeekly: ticketWeekly ? $t('ticketWeekly', {ticketWeekly}) : null + ticketWeekly: ticketWeekly ? $t('clonedFromTicketWeekly', {ticketWeekly}) : null }); await models.Chat.sendCheckingPresence(ctx, salesPerson.id, message, myOptions); } diff --git a/modules/ticket/back/methods/sale/updateQuantity.js b/modules/ticket/back/methods/sale/updateQuantity.js index 4de1bcbd65..f6be171ce3 100644 --- a/modules/ticket/back/methods/sale/updateQuantity.js +++ b/modules/ticket/back/methods/sale/updateQuantity.js @@ -72,6 +72,7 @@ module.exports = Self => { const salesPerson = sale.ticket().client().salesPersonUser(); if (salesPerson) { const url = await Self.app.models.Url.getUrl(); + const ticketWeekly = await models.Sale.ticketWeekly(sale.id); const change = $t('Changes in sales', { itemId: sale.itemFk, concept: sale.concept, @@ -84,6 +85,7 @@ module.exports = Self => { ticketId: sale.ticket().id, changes: JSON.stringify(change), ticketUrl: `${url}ticket/${sale.ticket().id}/sale`, + ticketWeekly: ticketWeekly ? $t('clonedFromTicketWeekly', {ticketWeekly}) : null }); await models.Chat.sendCheckingPresence(ctx, salesPerson.id, message, myOptions); diff --git a/modules/ticket/back/methods/ticket/updateDiscount.js b/modules/ticket/back/methods/ticket/updateDiscount.js index 2e8bec27a8..9baec5c841 100644 --- a/modules/ticket/back/methods/ticket/updateDiscount.js +++ b/modules/ticket/back/methods/ticket/updateDiscount.js @@ -166,10 +166,14 @@ module.exports = Self => { const salesPerson = ticket.client().salesPersonUser(); if (salesPerson) { const url = await Self.app.models.Url.getUrl(); + const saleId = sales[0].id; + const ticketWeekly = await models.Sale.ticketWeekly(saleId); + const message = $t('Changed sale discount', { ticketId: id, ticketUrl: `${url}ticket/${id}/sale`, - changes: changesMade + changes: changesMade, + ticketWeekly: ticketWeekly ? $t('clonedFromTicketWeekly', {ticketWeekly}) : null }); await models.Chat.sendCheckingPresence(ctx, salesPerson.id, message, myOptions); } From 8dc803b5df54167009735596fc59e2d434c913dd Mon Sep 17 00:00:00 2001 From: guillermo Date: Fri, 31 Jan 2025 14:25:23 +0100 Subject: [PATCH 126/149] feat: refs #8227 Roadmap changes --- db/routines/vn/triggers/roadmapStop_beforeUpdate.sql | 6 +++--- db/versions/11416-goldenTulip/09-firstScript.sql | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) create mode 100644 db/versions/11416-goldenTulip/09-firstScript.sql diff --git a/db/routines/vn/triggers/roadmapStop_beforeUpdate.sql b/db/routines/vn/triggers/roadmapStop_beforeUpdate.sql index d9016a1708..c3142c8acc 100644 --- a/db/routines/vn/triggers/roadmapStop_beforeUpdate.sql +++ b/db/routines/vn/triggers/roadmapStop_beforeUpdate.sql @@ -13,7 +13,7 @@ BEGIN END IF; IF (NOT (NEW.roadmapFk <=> OLD.roadmapFk) AND NEW.roadmapFk IS NOT NULL) - OR (NOT (NEW.eta <=> OLD.eta) AND NEW.eta IS NOT NULL) THEN + OR (NOT (NEW.eta <=> OLD.eta)) THEN IF NEW.eta < (SELECT etd FROM roadmap WHERE id = NEW.roadmapFk) THEN CALL util.throw('Departure time can not be after arrival time'); @@ -24,7 +24,7 @@ BEGIN WHERE roadmapFk = NEW.roadmapFk AND id <> OLD.id; - IF vMaxEta IS NULL OR NEW.eta > vMaxEta THEN + IF vMaxEta < NEW.eta OR vMaxEta IS NULL THEN SET vMaxEta = NEW.eta; END IF; @@ -32,7 +32,7 @@ BEGIN FROM roadmap WHERE id = NEW.roadmapFk; - IF vMaxEta <> vCurrentEta THEN + IF (vMaxEta <> vCurrentEta OR vMaxEta IS NULL) OR vMaxEta IS NOT NULL THEN UPDATE roadmap SET eta = vMaxEta WHERE id = NEW.roadmapFk; diff --git a/db/versions/11416-goldenTulip/09-firstScript.sql b/db/versions/11416-goldenTulip/09-firstScript.sql new file mode 100644 index 0000000000..5e61de07a7 --- /dev/null +++ b/db/versions/11416-goldenTulip/09-firstScript.sql @@ -0,0 +1 @@ +CREATE INDEX route_dated_IDX USING BTREE ON vn.route (dated); From adba4765ed59662ae480f170dab684599906ebbd Mon Sep 17 00:00:00 2001 From: jgallego Date: Mon, 3 Feb 2025 09:07:08 +0100 Subject: [PATCH 127/149] refactor: refs #7686 update alert level conditions to only check for 'FREE' --- .../inventoryDiscrepancyDetail_replace.sql | 12 ++++++------ .../hedera/procedures/order_confirmWithUser.sql | 2 +- db/routines/vn/procedures/productionControl.sql | 6 +++--- .../vn/procedures/ticketDown_PrintableSelection.sql | 2 +- .../vn/procedures/ticketGetVisibleAvailable.sql | 2 +- db/routines/vn/procedures/ticket_canMerge.sql | 6 +++--- db/routines/vn/procedures/ticket_canbePostponed.sql | 2 +- .../back/methods/sales-monitor/salesFilter.js | 2 +- modules/ticket/back/methods/ticket/filter.js | 2 +- .../ticket/back/methods/ticket/getTicketsFuture.js | 2 +- 10 files changed, 19 insertions(+), 19 deletions(-) diff --git a/db/routines/bs/procedures/inventoryDiscrepancyDetail_replace.sql b/db/routines/bs/procedures/inventoryDiscrepancyDetail_replace.sql index a30e47be35..6894b29289 100644 --- a/db/routines/bs/procedures/inventoryDiscrepancyDetail_replace.sql +++ b/db/routines/bs/procedures/inventoryDiscrepancyDetail_replace.sql @@ -9,7 +9,7 @@ BEGIN DECLARE vCalc INT; DECLARE vWarehouseFk INT; - DECLARE cWarehouses CURSOR FOR + DECLARE cWarehouses CURSOR FOR SELECT id FROM vn.warehouse WHERE isInventory; @@ -22,13 +22,13 @@ BEGIN read_loop: LOOP SET vDone = FALSE; FETCH cWarehouses INTO vWarehouseFk; - + IF vDone THEN LEAVE read_loop; END IF; - + CALL cache.visible_refresh(vCalc, FALSE, vWarehouseFk); - + CREATE OR REPLACE TEMPORARY TABLE tVisible SELECT itemFk, SUM(visible) totalVisible FROM vn.itemShelving ish @@ -37,7 +37,7 @@ BEGIN JOIN vn.sector sc ON sc.id = p.sectorFk WHERE sc.warehouseFk = vWarehouseFk GROUP BY itemFk; - + INSERT INTO inventoryDiscrepancyDetail( warehouseFk, itemFk, @@ -66,7 +66,7 @@ BEGIN JOIN vn.alertLevel al ON al.id = ts.alertLevel WHERE t.shipped BETWEEN util.VN_CURDATE() AND util.dayend(util.VN_CURDATE()) AND NOT s.isPicked - AND al.code IN ('FREE', 'APPROVED') + AND al.code = 'FREE' AND t.warehouseFk = vWarehouseFk GROUP BY s.itemFk HAVING notPicked diff --git a/db/routines/hedera/procedures/order_confirmWithUser.sql b/db/routines/hedera/procedures/order_confirmWithUser.sql index 39da09a96b..db83cba5c3 100644 --- a/db/routines/hedera/procedures/order_confirmWithUser.sql +++ b/db/routines/hedera/procedures/order_confirmWithUser.sql @@ -147,7 +147,7 @@ BEGIN ) SELECT t.id INTO vTicketFk FROM vn.ticket t - JOIN vn.alertLevel al ON al.code IN ('FREE', 'APPROVED') + JOIN vn.alertLevel al ON al.code = 'FREE' LEFT JOIN tPrevia tp ON tp.ticketFk = t.id LEFT JOIN vn.ticketState tls ON tls.ticketFk = t.id JOIN hedera.`order` o ON o.address_id = t.addressFk diff --git a/db/routines/vn/procedures/productionControl.sql b/db/routines/vn/procedures/productionControl.sql index 8d85062ba4..aa52a52c55 100644 --- a/db/routines/vn/procedures/productionControl.sql +++ b/db/routines/vn/procedures/productionControl.sql @@ -80,7 +80,7 @@ proc: BEGIN rm.bufferFk FROM tmp.productionTicket tt JOIN ticket t ON tt.ticketFk = t.id - JOIN alertLevel al ON al.code = 'APPROVED' + JOIN alertLevel al ON al.code = 'FREE' LEFT JOIN ticketStateToday tst ON tst.ticketFk = t.id LEFT JOIN `state` st ON st.id = tst.state LEFT JOIN client c ON c.id = t.clientFk @@ -266,14 +266,14 @@ proc: BEGIN UPDATE tmp.productionBuffer pb JOIN sale s ON s.ticketFk = pb.ticketFk JOIN item i ON i.id = s.itemFk - JOIN cache.last_buy lb ON lb.warehouse_id = vWarehouseFk + JOIN cache.last_buy lb ON lb.warehouse_id = vWarehouseFk AND lb.item_id = s.itemFk JOIN buy b ON b.id = lb.buy_id JOIN packaging p ON p.id = b.packagingFk SET pb.hasPlantTray = TRUE WHERE p.isPlantTray AND s.quantity >= b.packing - AND pb.isOwn; + AND pb.isOwn; DROP TEMPORARY TABLE tmp.productionTicket, diff --git a/db/routines/vn/procedures/ticketDown_PrintableSelection.sql b/db/routines/vn/procedures/ticketDown_PrintableSelection.sql index 619c8b20f8..8f448d647a 100644 --- a/db/routines/vn/procedures/ticketDown_PrintableSelection.sql +++ b/db/routines/vn/procedures/ticketDown_PrintableSelection.sql @@ -13,7 +13,7 @@ BEGIN JOIN vn.parking p ON p.id = sh.parkingFk WHERE p.sectorFk = vSectorFk ) sub ON sub.id = td.ticketFk - JOIN vn.ticketDown_SelectionType tdst ON tdst.description IN ('FREE', 'APPROVED') + JOIN vn.ticketDown_SelectionType tdst ON tdst.description = 'FREE' JOIN vn.ticketDown_SelectionType tdst2 ON tdst2.description = 'SELECTED' SET td.selected = tdst2.id WHERE td.selected = tdst.id; diff --git a/db/routines/vn/procedures/ticketGetVisibleAvailable.sql b/db/routines/vn/procedures/ticketGetVisibleAvailable.sql index cb7fe20e91..01010f5483 100644 --- a/db/routines/vn/procedures/ticketGetVisibleAvailable.sql +++ b/db/routines/vn/procedures/ticketGetVisibleAvailable.sql @@ -12,7 +12,7 @@ BEGIN SELECT t.warehouseFk, t.shipped, ts.alertLevel, al.id INTO vWarehouse, vShipped, vAlertLevel, vAlertLevelFree FROM ticket t - JOIN alertLevel al ON al.code IN ('FREE', 'APPROVED') + JOIN alertLevel al ON al.code = 'FREE' LEFT JOIN ticketState ts ON ts.ticketFk = vTicket WHERE t.id = vTicket; diff --git a/db/routines/vn/procedures/ticket_canMerge.sql b/db/routines/vn/procedures/ticket_canMerge.sql index 82ce5f2010..d0737f00fc 100644 --- a/db/routines/vn/procedures/ticket_canMerge.sql +++ b/db/routines/vn/procedures/ticket_canMerge.sql @@ -3,7 +3,7 @@ CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `vn`.`ticket_canMerge`(vDat BEGIN /** * Devuelve un listado de tickets susceptibles de fusionarse con otros tickets en el futuro - * + * * @param vDated Fecha en cuestión * @param vScopeDays Dias en el futuro a sondear * @param vLitersMax Volumen máximo de los tickets a catapultar @@ -48,14 +48,14 @@ BEGIN WHERE t.shipped BETWEEN TIMESTAMPADD(DAY, vScopeDays,vDated) AND util.dayend(TIMESTAMPADD(DAY, vScopeDays,vDated)) AND t.warehouseFk = vWarehouseFk - AND al.code IN ('FREE', 'APPROVED') + AND al.code = 'FREE' GROUP BY t.id ) sub GROUP BY sub.addressFk ) sub2 ON sub2.addressFk = t.addressFk AND t.id != sub2.id WHERE t.shipped BETWEEN vDated AND util.dayend(vDated) AND t.warehouseFk = vWarehouseFk - AND al.code IN ('FREE', 'APPROVED') + AND al.code = 'FREE' AND tp.ticketFk IS NULL GROUP BY sv.ticketFk HAVING liters <= vLitersMax diff --git a/db/routines/vn/procedures/ticket_canbePostponed.sql b/db/routines/vn/procedures/ticket_canbePostponed.sql index b4b0871cec..a21e171cfa 100644 --- a/db/routines/vn/procedures/ticket_canbePostponed.sql +++ b/db/routines/vn/procedures/ticket_canbePostponed.sql @@ -69,7 +69,7 @@ BEGIN ) sub2 ON sub2.addressFk = t.addressFk AND t.id != sub2.id WHERE t.shipped BETWEEN vOriginDated AND util.dayend(vOriginDated) AND t.warehouseFk = vWarehouseFk - AND al.code IN ('FREE', 'APPROVED') + AND al.code = 'FREE' AND tp.ticketFk IS NULL GROUP BY sv.ticketFk HAVING futureId; diff --git a/modules/monitor/back/methods/sales-monitor/salesFilter.js b/modules/monitor/back/methods/sales-monitor/salesFilter.js index ab2a64293e..4947edeafb 100644 --- a/modules/monitor/back/methods/sales-monitor/salesFilter.js +++ b/modules/monitor/back/methods/sales-monitor/salesFilter.js @@ -264,7 +264,7 @@ module.exports = Self => { SELECT f.id ticketFk, f.clientFk, f.warehouseFk, f.shipped FROM tmp.filter f LEFT JOIN alertLevel al ON al.id = f.alertLevel - WHERE (al.code IN ('FREE', 'APPROVED') OR f.alertLevel IS NULL) + WHERE (al.code = 'FREE' OR f.alertLevel IS NULL) AND f.shipped >= ?`, [date]); stmts.push(stmt); diff --git a/modules/ticket/back/methods/ticket/filter.js b/modules/ticket/back/methods/ticket/filter.js index 32b2197ad5..f125ac586f 100644 --- a/modules/ticket/back/methods/ticket/filter.js +++ b/modules/ticket/back/methods/ticket/filter.js @@ -294,7 +294,7 @@ module.exports = Self => { SELECT f.id ticketFk, f.clientFk, f.warehouseFk, f.shipped FROM tmp.filter f LEFT JOIN alertLevel al ON al.id = f.alertLevel - WHERE (al.code IN ('FREE', 'APPROVED') OR f.alertLevel IS NULL) + WHERE (al.code = 'FREE' OR f.alertLevel IS NULL) AND f.shipped >= ? `, [date]); diff --git a/modules/ticket/back/methods/ticket/getTicketsFuture.js b/modules/ticket/back/methods/ticket/getTicketsFuture.js index 88bbd6f30a..2479245912 100644 --- a/modules/ticket/back/methods/ticket/getTicketsFuture.js +++ b/modules/ticket/back/methods/ticket/getTicketsFuture.js @@ -152,7 +152,7 @@ module.exports = Self => { SELECT f.id ticketFk, f.clientFk, f.warehouseFk, f.shipped, f.lines, f.liters FROM tmp.filter f LEFT JOIN alertLevel al ON al.id = f.alertLevel - WHERE (al.code IN ('FREE', 'APPROVED') OR f.alertLevel IS NULL) + WHERE (al.code = 'FREE' OR f.alertLevel IS NULL) `); stmts.push(stmt); From c1dd0eeb32b22d6619634aa7dd4b4f510b5e457d Mon Sep 17 00:00:00 2001 From: guillermo Date: Mon, 3 Feb 2025 10:54:17 +0100 Subject: [PATCH 128/149] refactor: refs #8512 Add 'master' branch check in description condition --- modules/mdb/back/methods/mdbVersion/upload.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/mdb/back/methods/mdbVersion/upload.js b/modules/mdb/back/methods/mdbVersion/upload.js index 64de726791..ee67e35d03 100644 --- a/modules/mdb/back/methods/mdbVersion/upload.js +++ b/modules/mdb/back/methods/mdbVersion/upload.js @@ -146,7 +146,7 @@ module.exports = Self => { await fs.symlink(rootRelative, destinationRoot); } } - if (description) { + if (description && branch == 'master') { let formatDesc; const mainBranches = new Set(['master', 'test', 'dev']); if (mainBranches.has(branch)) From 0646d2e817bb44d7477c98a548cc8fe891a1fa1d Mon Sep 17 00:00:00 2001 From: robert Date: Mon, 3 Feb 2025 12:41:51 +0100 Subject: [PATCH 129/149] feat: refs #6702 changes request --- modules/ticket/back/methods/sale/updatePrice.js | 6 +++++- modules/ticket/back/methods/sale/updateQuantity.js | 7 ++++++- .../ticket/back/methods/ticket/updateDiscount.js | 6 +++++- modules/ticket/back/models/sale.js | 14 -------------- 4 files changed, 16 insertions(+), 17 deletions(-) diff --git a/modules/ticket/back/methods/sale/updatePrice.js b/modules/ticket/back/methods/sale/updatePrice.js index c51cef6f5e..287a6a9222 100644 --- a/modules/ticket/back/methods/sale/updatePrice.js +++ b/modules/ticket/back/methods/sale/updatePrice.js @@ -113,7 +113,11 @@ module.exports = Self => { const salesPerson = sale.ticket().client().salesPersonUser(); if (salesPerson) { const url = await Self.app.models.Url.getUrl(); - const ticketWeekly = await models.Sale.ticketWeekly(sale.id); + + const saleCloned = await Self.app.models.SaleCloned.findById(sale.id, { + include: 'saleOriginal', + }); + const ticketWeekly = saleCloned?.saleOriginal()?.ticketFk || null; const message = $t('Changed sale price', { ticketId: sale.ticket().id, diff --git a/modules/ticket/back/methods/sale/updateQuantity.js b/modules/ticket/back/methods/sale/updateQuantity.js index f6be171ce3..5561c77efb 100644 --- a/modules/ticket/back/methods/sale/updateQuantity.js +++ b/modules/ticket/back/methods/sale/updateQuantity.js @@ -72,7 +72,12 @@ module.exports = Self => { const salesPerson = sale.ticket().client().salesPersonUser(); if (salesPerson) { const url = await Self.app.models.Url.getUrl(); - const ticketWeekly = await models.Sale.ticketWeekly(sale.id); + + const saleCloned = await Self.app.models.SaleCloned.findById(sale.id, { + include: 'saleOriginal', + }); + const ticketWeekly = saleCloned?.saleOriginal()?.ticketFk || null; + const change = $t('Changes in sales', { itemId: sale.itemFk, concept: sale.concept, diff --git a/modules/ticket/back/methods/ticket/updateDiscount.js b/modules/ticket/back/methods/ticket/updateDiscount.js index 9baec5c841..0175e43c54 100644 --- a/modules/ticket/back/methods/ticket/updateDiscount.js +++ b/modules/ticket/back/methods/ticket/updateDiscount.js @@ -166,8 +166,12 @@ module.exports = Self => { const salesPerson = ticket.client().salesPersonUser(); if (salesPerson) { const url = await Self.app.models.Url.getUrl(); + const saleId = sales[0].id; - const ticketWeekly = await models.Sale.ticketWeekly(saleId); + const saleCloned = await Self.app.models.SaleCloned.findById(saleId, { + include: 'saleOriginal', + }); + const ticketWeekly = saleCloned?.saleOriginal()?.ticketFk || null; const message = $t('Changed sale discount', { ticketId: id, diff --git a/modules/ticket/back/models/sale.js b/modules/ticket/back/models/sale.js index 3ed4ddb52b..dd2de6af0b 100644 --- a/modules/ticket/back/models/sale.js +++ b/modules/ticket/back/models/sale.js @@ -136,19 +136,5 @@ module.exports = Self => { if (!saleGrouping?.newPrice || saleGrouping.newPrice > instance.price) throw new UserError('The price of the item changed'); }); - - Self.ticketWeekly = async function(saleId) { - const SaleCloned = Self.app.models.SaleCloned; - - const saleCloned2 = await SaleCloned.findOne({ - where: { - saleClonedFk: saleId - }, - include: { - relation: 'saleOriginal' - } - }); - return saleCloned2?.saleOriginal()?.ticketFk || null; - }; }; From 6b9c8300fb3509e7f7c5fd89b354488eefb3a5b6 Mon Sep 17 00:00:00 2001 From: sergiodt Date: Mon, 3 Feb 2025 12:41:56 +0100 Subject: [PATCH 130/149] feat: refs #7412 notificationMisAllocation --- db/dump/fixtures.before.sql | 6 ++++-- db/versions/11430-salmonRaphis/00-firstScript.sql | 5 +++++ .../misallocation-warehouse/assets/css/import.js | 11 +++++++++++ .../email/misallocation-warehouse/locale/en.yml | 3 +++ .../email/misallocation-warehouse/locale/es.yml | 3 +++ .../email/misallocation-warehouse/locale/fr.yml | 3 +++ .../email/misallocation-warehouse/locale/pt.yml | 3 +++ .../misallocation-warehouse.html | 9 +++++++++ .../misallocation-warehouse.js | 15 +++++++++++++++ 9 files changed, 56 insertions(+), 2 deletions(-) create mode 100644 db/versions/11430-salmonRaphis/00-firstScript.sql create mode 100644 print/templates/email/misallocation-warehouse/assets/css/import.js create mode 100644 print/templates/email/misallocation-warehouse/locale/en.yml create mode 100644 print/templates/email/misallocation-warehouse/locale/es.yml create mode 100644 print/templates/email/misallocation-warehouse/locale/fr.yml create mode 100644 print/templates/email/misallocation-warehouse/locale/pt.yml create mode 100644 print/templates/email/misallocation-warehouse/misallocation-warehouse.html create mode 100755 print/templates/email/misallocation-warehouse/misallocation-warehouse.js diff --git a/db/dump/fixtures.before.sql b/db/dump/fixtures.before.sql index c08938f043..afcacbcc4d 100644 --- a/db/dump/fixtures.before.sql +++ b/db/dump/fixtures.before.sql @@ -2926,7 +2926,8 @@ INSERT INTO `util`.`notification` (`id`, `name`, `description`) (7, 'zone-included','An email to notify zoneCollisions'), (8, 'backup-printer-selected','A backup printer has been selected'), (9, 'mrw-deadline','The MRW deadline has passed'), - (10,'invoice-ticket-closure','Tickets not invoiced during the nightly closure ticket process'); + (10,'invoice-ticket-closure','Tickets not invoiced during the nightly closure ticket process'), + (11,'misallocation-warehouse','Misallocation of items in the warehouse.'); TRUNCATE `util`.`notificationAcl`; INSERT INTO `util`.`notificationAcl` (`notificationFk`, `roleFk`) @@ -2940,7 +2941,8 @@ INSERT INTO `util`.`notificationAcl` (`notificationFk`, `roleFk`) (6, 9), (7, 9), (8, 66), - (9, 56); + (9, 56), + (11, 9); TRUNCATE `util`.`notificationQueue`; INSERT INTO `util`.`notificationQueue` (`id`, `notificationFk`, `params`, `authorFk`, `status`, `created`) diff --git a/db/versions/11430-salmonRaphis/00-firstScript.sql b/db/versions/11430-salmonRaphis/00-firstScript.sql new file mode 100644 index 0000000000..65f8fa43b1 --- /dev/null +++ b/db/versions/11430-salmonRaphis/00-firstScript.sql @@ -0,0 +1,5 @@ + + +INSERT IGNORE INTO util.notification + SET name = 'misallocation-warehouse', + description = 'Misallocation in warehouse'; diff --git a/print/templates/email/misallocation-warehouse/assets/css/import.js b/print/templates/email/misallocation-warehouse/assets/css/import.js new file mode 100644 index 0000000000..4b4bb70869 --- /dev/null +++ b/print/templates/email/misallocation-warehouse/assets/css/import.js @@ -0,0 +1,11 @@ +const Stylesheet = require(`vn-print/core/stylesheet`); + +const path = require('path'); +const vnPrintPath = path.resolve('print'); + +module.exports = new Stylesheet([ + `${vnPrintPath}/common/css/spacing.css`, + `${vnPrintPath}/common/css/misc.css`, + `${vnPrintPath}/common/css/layout.css`, + `${vnPrintPath}/common/css/email.css`]) + .mergeStyles(); diff --git a/print/templates/email/misallocation-warehouse/locale/en.yml b/print/templates/email/misallocation-warehouse/locale/en.yml new file mode 100644 index 0000000000..b16d9bd50a --- /dev/null +++ b/print/templates/email/misallocation-warehouse/locale/en.yml @@ -0,0 +1,3 @@ +subject: Misallocation of articles +title: Misallocation of articles +body: Misallocated articles have been placed in the warehouse that do not correspond to the entry location. diff --git a/print/templates/email/misallocation-warehouse/locale/es.yml b/print/templates/email/misallocation-warehouse/locale/es.yml new file mode 100644 index 0000000000..fbb1c74f16 --- /dev/null +++ b/print/templates/email/misallocation-warehouse/locale/es.yml @@ -0,0 +1,3 @@ +subject: Artículos mal ubicados +title: Artículos mal ubicados +body: Artículos mal ubicados han sido colocados en el almacén que no corresponden a la ubicación de la entrada. diff --git a/print/templates/email/misallocation-warehouse/locale/fr.yml b/print/templates/email/misallocation-warehouse/locale/fr.yml new file mode 100644 index 0000000000..0c8f155d6b --- /dev/null +++ b/print/templates/email/misallocation-warehouse/locale/fr.yml @@ -0,0 +1,3 @@ +subject: Artículos mal placés +title: Artículos mal placés +body: Artículos mal placés ont été stockés dans l’entrepôt qui ne correspond pas à l’emplacement de l’entrée. diff --git a/print/templates/email/misallocation-warehouse/locale/pt.yml b/print/templates/email/misallocation-warehouse/locale/pt.yml new file mode 100644 index 0000000000..129960ba69 --- /dev/null +++ b/print/templates/email/misallocation-warehouse/locale/pt.yml @@ -0,0 +1,3 @@ +subject: Artículos mal colocados +title: Artículos mal colocados +body: Artículos mal colocados foram armazenados no armazém que não corresponde à localização da entrada. diff --git a/print/templates/email/misallocation-warehouse/misallocation-warehouse.html b/print/templates/email/misallocation-warehouse/misallocation-warehouse.html new file mode 100644 index 0000000000..ad68ae0b63 --- /dev/null +++ b/print/templates/email/misallocation-warehouse/misallocation-warehouse.html @@ -0,0 +1,9 @@ + +
+
+

{{ $t('title') }}

+

{{$t('body')}}

+

{{action}}

+
+
+
diff --git a/print/templates/email/misallocation-warehouse/misallocation-warehouse.js b/print/templates/email/misallocation-warehouse/misallocation-warehouse.js new file mode 100755 index 0000000000..f61cef8192 --- /dev/null +++ b/print/templates/email/misallocation-warehouse/misallocation-warehouse.js @@ -0,0 +1,15 @@ +const Component = require(`vn-print/core/component`); +const emailBody = new Component('email-body'); + +module.exports = { + name: 'misallocation-warehouse', + components: { + 'email-body': emailBody.build(), + }, + props: { + action: { + type: String, + required: true + } + } +}; From d79c19d92a4ab7dec14697e65bb28790da293b89 Mon Sep 17 00:00:00 2001 From: robert Date: Mon, 3 Feb 2025 12:42:38 +0100 Subject: [PATCH 131/149] feat: refs #6702 delete line --- modules/ticket/back/models/sale.js | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/ticket/back/models/sale.js b/modules/ticket/back/models/sale.js index dd2de6af0b..3aa4cbf2ad 100644 --- a/modules/ticket/back/models/sale.js +++ b/modules/ticket/back/models/sale.js @@ -137,4 +137,3 @@ module.exports = Self => { throw new UserError('The price of the item changed'); }); }; - From 9adb160f2da8d12ef193303d0cdb835495e97a67 Mon Sep 17 00:00:00 2001 From: sergiodt Date: Mon, 3 Feb 2025 16:14:48 +0100 Subject: [PATCH 132/149] feat: refs #7412 refs#7569 sendEmailNotificationChangeText --- loopback/locale/es.json | 796 ++++++++++++++++++++-------------------- 1 file changed, 398 insertions(+), 398 deletions(-) diff --git a/loopback/locale/es.json b/loopback/locale/es.json index f79dad236e..b8c3d6a564 100644 --- a/loopback/locale/es.json +++ b/loopback/locale/es.json @@ -1,400 +1,400 @@ { - "Phone format is invalid": "El formato del teléfono no es correcto", - "You are not allowed to change the credit": "No tienes privilegios para modificar el crédito", - "Unable to mark the equivalence surcharge": "No se puede marcar el recargo de equivalencia", - "The default consignee can not be unchecked": "No se puede desmarcar el consignatario predeterminado", - "Unable to default a disabled consignee": "No se puede poner predeterminado un consignatario desactivado", - "Can't be blank": "No puede estar en blanco", - "Invalid TIN": "NIF/CIF inválido", - "TIN must be unique": "El NIF/CIF debe ser único", - "A client with that Web User name already exists": "Ya existe un cliente con ese Usuario Web", - "Is invalid": "Es inválido", - "Quantity cannot be zero": "La cantidad no puede ser cero", - "Enter an integer different to zero": "Introduce un entero distinto de cero", - "Package cannot be blank": "El embalaje no puede estar en blanco", - "The company name must be unique": "La razón social debe ser única", - "Invalid email": "Correo electrónico inválido", - "The IBAN does not have the correct format": "El IBAN no tiene el formato correcto", - "That payment method requires an IBAN": "El método de pago seleccionado requiere un IBAN", - "That payment method requires a BIC": "El método de pago seleccionado requiere un BIC", - "State cannot be blank": "El estado no puede estar en blanco", - "Worker cannot be blank": "El trabajador no puede estar en blanco", - "Cannot change the payment method if no salesperson": "No se puede cambiar la forma de pago si no hay comercial asignado", - "can't be blank": "El campo no puede estar vacío", - "Observation type must be unique": "El tipo de observación no puede repetirse", - "The credit must be an integer greater than or equal to zero": "The credit must be an integer greater than or equal to zero", - "The grade must be similar to the last one": "El grade debe ser similar al último", - "Only manager can change the credit": "Solo el gerente puede cambiar el credito de este cliente", - "Name cannot be blank": "El nombre no puede estar en blanco", - "Phone cannot be blank": "El teléfono no puede estar en blanco", - "Period cannot be blank": "El periodo no puede estar en blanco", - "Choose a company": "Selecciona una empresa", - "Se debe rellenar el campo de texto": "Se debe rellenar el campo de texto", - "Description should have maximum of 45 characters": "La descripción debe tener maximo 45 caracteres", - "Cannot be blank": "El campo no puede estar en blanco", - "The grade must be an integer greater than or equal to zero": "El grade debe ser un entero mayor o igual a cero", - "Sample type cannot be blank": "El tipo de plantilla no puede quedar en blanco", - "Description cannot be blank": "Se debe rellenar el campo de texto", - "The price of the item changed": "El precio del artículo cambió", - "The value should not be greater than 100%": "El valor no debe de ser mayor de 100%", - "The value should be a number": "El valor debe ser un numero", - "This order is not editable": "Esta orden no se puede modificar", - "You can't create an order for a frozen client": "No puedes crear una orden para un cliente congelado", - "You can't create an order for a client that has a debt": "No puedes crear una orden para un cliente con deuda", - "is not a valid date": "No es una fecha valida", - "Barcode must be unique": "El código de barras debe ser único", - "The warehouse can't be repeated": "El almacén no puede repetirse", - "The tag or priority can't be repeated for an item": "El tag o prioridad no puede repetirse para un item", - "The observation type can't be repeated": "El tipo de observación no puede repetirse", - "A claim with that sale already exists": "Ya existe una reclamación para esta línea", - "You don't have enough privileges to change that field": "No tienes permisos para cambiar ese campo", - "Warehouse cannot be blank": "El almacén no puede quedar en blanco", - "Agency cannot be blank": "La agencia no puede quedar en blanco", - "Not enough privileges to edit a client with verified data": "No tienes permisos para hacer cambios en un cliente con datos comprobados", - "This address doesn't exist": "Este consignatario no existe", - "You must delete the claim id %d first": "Antes debes borrar la reclamación %d", - "You don't have enough privileges": "No tienes suficientes permisos", - "Cannot check Equalization Tax in this NIF/CIF": "No se puede marcar RE en este NIF/CIF", - "You can't make changes on the basic data of an confirmed order or with rows": "No puedes cambiar los datos básicos de una orden con artículos", - "INVALID_USER_NAME": "El nombre de usuario solo debe contener letras minúsculas o, a partir del segundo carácter, números o subguiones, no está permitido el uso de la letra ñ", - "You can't create a ticket for a frozen client": "No puedes crear un ticket para un cliente congelado", - "You can't create a ticket for an inactive client": "No puedes crear un ticket para un cliente inactivo", - "Tag value cannot be blank": "El valor del tag no puede quedar en blanco", - "ORDER_EMPTY": "Cesta vacía", - "You don't have enough privileges to do that": "No tienes permisos para cambiar esto", - "NO SE PUEDE DESACTIVAR EL CONSIGNAT": "NO SE PUEDE DESACTIVAR EL CONSIGNAT", - "Error. El NIF/CIF está repetido": "Error. El NIF/CIF está repetido", - "Street cannot be empty": "Dirección no puede estar en blanco", - "City cannot be empty": "Ciudad no puede estar en blanco", - "Code cannot be blank": "Código no puede estar en blanco", - "You cannot remove this department": "No puedes eliminar este departamento", - "The extension must be unique": "La extensión debe ser unica", - "The secret can't be blank": "La contraseña no puede estar en blanco", - "We weren't able to send this SMS": "No hemos podido enviar el SMS", - "This client can't be invoiced": "Este cliente no puede ser facturado", - "You must provide the correction information to generate a corrective invoice": "Debes informar la información de corrección para generar una factura rectificativa", - "This ticket can't be invoiced": "Este ticket no puede ser facturado", - "You cannot add or modify services to an invoiced ticket": "No puedes añadir o modificar servicios a un ticket facturado", - "This ticket can not be modified": "Este ticket no puede ser modificado", - "The introduced hour already exists": "Esta hora ya ha sido introducida", - "INFINITE_LOOP": "Existe una dependencia entre dos Jefes", - "The sales of the receiver ticket can't be modified": "Las lineas del ticket al que envias no pueden ser modificadas", - "NO_AGENCY_AVAILABLE": "No hay una zona de reparto disponible con estos parámetros", - "ERROR_PAST_SHIPMENT": "No puedes seleccionar una fecha de envío en pasado", - "The current ticket can't be modified": "El ticket actual no puede ser modificado", - "The current claim can't be modified": "La reclamación actual no puede ser modificada", - "The sales of this ticket can't be modified": "Las lineas de este ticket no pueden ser modificadas", - "The sales do not exists": "La(s) línea(s) seleccionada(s) no existe(n)", - "Please select at least one sale": "Por favor selecciona al menos una linea", - "All sales must belong to the same ticket": "Todas las lineas deben pertenecer al mismo ticket", - "NO_ZONE_FOR_THIS_PARAMETERS": "Para este día no hay ninguna zona configurada", - "This item doesn't exists": "El artículo no existe", - "NOT_ZONE_WITH_THIS_PARAMETERS": "Para este día no hay ninguna zona configurada", - "Extension format is invalid": "El formato de la extensión es inválido", - "Invalid parameters to create a new ticket": "Parámetros inválidos para crear un nuevo ticket", - "This item is not available": "Este artículo no está disponible", - "This postcode already exists": "Este código postal ya existe", - "Concept cannot be blank": "El concepto no puede quedar en blanco", - "File doesn't exists": "El archivo no existe", - "You don't have privileges to change the zone": "No tienes permisos para cambiar la zona o para esos parámetros hay más de una opción de envío, hable con las agencias", - "This ticket is already on weekly tickets": "Este ticket ya está en tickets programados", - "Ticket id cannot be blank": "El id de ticket no puede quedar en blanco", - "Weekday cannot be blank": "El día de la semana no puede quedar en blanco", - "You can't delete a confirmed order": "No puedes borrar un pedido confirmado", - "The social name has an invalid format": "El nombre fiscal tiene un formato incorrecto", - "Invalid quantity": "Cantidad invalida", - "This postal code is not valid": "Este código postal no es válido", - "is invalid": "es inválido", - "The postcode doesn't exist. Please enter a correct one": "El código postal no existe. Por favor, introduce uno correcto", - "The department name can't be repeated": "El nombre del departamento no puede repetirse", - "This phone already exists": "Este teléfono ya existe", - "You cannot move a parent to its own sons": "No puedes mover un elemento padre a uno de sus hijos", - "You can't create a claim for a removed ticket": "No puedes crear una reclamación para un ticket eliminado", - "You cannot delete a ticket that part of it is being prepared": "No puedes eliminar un ticket en el que una parte que está siendo preparada", - "You must delete all the buy requests first": "Debes eliminar todas las peticiones de compra primero", - "You should specify a date": "Debes especificar una fecha", - "You should specify at least a start or end date": "Debes especificar al menos una fecha de inicio o de fin", - "Start date should be lower than end date": "La fecha de inicio debe ser menor que la fecha de fin", - "You should mark at least one week day": "Debes marcar al menos un día de la semana", - "Swift / BIC can't be empty": "Swift / BIC no puede estar vacío", - "Customs agent is required for a non UEE member": "El agente de aduanas es requerido para los clientes extracomunitarios", - "Incoterms is required for a non UEE member": "El incoterms es requerido para los clientes extracomunitarios", - "Deleted sales from ticket": "He eliminado las siguientes lineas del ticket [{{ticketId}}]({{{ticketUrl}}}): {{{deletions}}}", - "Added sale to ticket": "He añadido la siguiente linea al ticket [{{ticketId}}]({{{ticketUrl}}}): {{{addition}}}", - "Changed sale discount": "He cambiado el descuento de las siguientes lineas al ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", - "Created claim": "He creado la reclamación [{{claimId}}]({{{claimUrl}}}) de las siguientes lineas del ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", - "Changed sale price": "He cambiado el precio de [{{itemId}} {{concept}}]({{{itemUrl}}}) ({{quantity}}) de {{oldPrice}}€ ➔ *{{newPrice}}€* del ticket [{{ticketId}}]({{{ticketUrl}}})", - "Changed sale quantity": "He cambiado {{changes}} del ticket [{{ticketId}}]({{{ticketUrl}}})", - "Changes in sales": "la cantidad de [{{itemId}} {{concept}}]({{{itemUrl}}}) de {{oldQuantity}} ➔ *{{newQuantity}}*", - "State": "Estado", - "regular": "normal", - "reserved": "reservado", - "Changed sale reserved state": "He cambiado el estado reservado de las siguientes lineas al ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", - "Bought units from buy request": "Se ha comprado {{quantity}} unidades de [{{itemId}} {{concept}}]({{{urlItem}}}) para el ticket id [{{ticketId}}]({{{url}}})", - "Deny buy request": "Se ha rechazado la petición de compra para el ticket id [{{ticketId}}]({{{url}}}). Motivo: {{observation}}", - "MESSAGE_INSURANCE_CHANGE": "He cambiado el crédito asegurado del cliente [{{clientName}} ({{clientId}})]({{{url}}}) a *{{credit}} €*", - "Changed client paymethod": "He cambiado la forma de pago del cliente [{{clientName}} ({{clientId}})]({{{url}}})", - "Sent units from ticket": "Envio *{{quantity}}* unidades de [{{concept}} ({{itemId}})]({{{itemUrl}}}) a *\"{{nickname}}\"* provenientes del ticket id [{{ticketId}}]({{{ticketUrl}}})", - "Change quantity": "{{concept}} cambia de {{oldQuantity}} a {{newQuantity}}", - "Claim will be picked": "Se recogerá el género de la reclamación [({{claimId}})]({{{claimUrl}}}) del cliente *{{clientName}}*, con el tipo de recogida *{{claimPickup}}*", - "Claim state has changed to": "Se ha cambiado el estado de la reclamación [({{claimId}})]({{{claimUrl}}}) del cliente *{{clientName}}* a *{{newState}}*", - "Client checked as validated despite of duplication": "Cliente comprobado a pesar de que existe el cliente id {{clientId}}", - "ORDER_ROW_UNAVAILABLE": "No hay disponibilidad de este producto", - "Distance must be lesser than 4000": "La distancia debe ser inferior a 4000", - "This ticket is deleted": "Este ticket está eliminado", - "Unable to clone this travel": "No ha sido posible clonar este travel", - "This thermograph id already exists": "La id del termógrafo ya existe", - "Choose a date range or days forward": "Selecciona un rango de fechas o días en adelante", - "ORDER_ALREADY_CONFIRMED": "ORDEN YA CONFIRMADA", - "Invalid password": "Invalid password", - "Password does not meet requirements": "La contraseña no cumple los requisitos", - "Role already assigned": "Rol ya asignado", - "Invalid role name": "Nombre de rol no válido", - "Role name must be written in camelCase": "El nombre del rol debe escribirse en camelCase", - "Email already exists": "El correo ya existe", - "User already exists": "El/La usuario/a ya existe", - "Absence change notification on the labour calendar": "Notificación de cambio de ausencia en el calendario laboral", - "Record of hours week": "Registro de horas semana {{week}} año {{year}} ", - "Created absence": "El empleado {{author}} ha añadido una ausencia de tipo '{{absenceType}}' a {{employee}} para el día {{dated}}.", - "Deleted absence": "El empleado {{author}} ha eliminado una ausencia de tipo '{{absenceType}}' a {{employee}} del día {{dated}}.", - "I have deleted the ticket id": "He eliminado el ticket id [{{id}}]({{{url}}})", - "I have restored the ticket id": "He restaurado el ticket id [{{id}}]({{{url}}})", - "You can only restore a ticket within the first hour after deletion": "Únicamente puedes restaurar el ticket dentro de la primera hora después de su eliminación", - "Changed this data from the ticket": "He cambiado estos datos del ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", - "agencyModeFk": "Agencia", - "clientFk": "Cliente", - "zoneFk": "Zona", - "warehouseFk": "Almacén", - "shipped": "F. envío", - "landed": "F. entrega", - "addressFk": "Consignatario", - "companyFk": "Empresa", - "agency": "Agencia", - "delivery": "Reparto", - "The social name cannot be empty": "La razón social no puede quedar en blanco", - "The nif cannot be empty": "El NIF no puede quedar en blanco", - "You need to fill sage information before you check verified data": "Debes rellenar la información de sage antes de marcar datos comprobados", - "ASSIGN_ZONE_FIRST": "Asigna una zona primero", - "Amount cannot be zero": "El importe no puede ser cero", - "Company has to be official": "Empresa inválida", - "You can not select this payment method without a registered bankery account": "No se puede utilizar este método de pago si no has registrado una cuenta bancaria", - "Action not allowed on the test environment": "Esta acción no está permitida en el entorno de pruebas", - "The selected ticket is not suitable for this route": "El ticket seleccionado no es apto para esta ruta", - "New ticket request has been created with price": "Se ha creado una nueva petición de compra '{{description}}' para el día *{{shipped}}*, con una cantidad de *{{quantity}}* y un precio de *{{price}} €*", - "New ticket request has been created": "Se ha creado una nueva petición de compra '{{description}}' para el día *{{shipped}}*, con una cantidad de *{{quantity}}*", - "Swift / BIC cannot be empty": "Swift / BIC no puede estar vacío", - "This BIC already exist.": "Este BIC ya existe.", - "That item doesn't exists": "Ese artículo no existe", - "There's a new urgent ticket:": "Hay un nuevo ticket urgente:", - "Invalid account": "Cuenta inválida", - "Compensation account is empty": "La cuenta para compensar está vacia", - "This genus already exist": "Este genus ya existe", - "This specie already exist": "Esta especie ya existe", - "Client assignment has changed": "He cambiado el comercial ~*\"<{{previousWorkerName}}>\"*~ por *\"<{{currentWorkerName}}>\"* del cliente [{{clientName}} ({{clientId}})]({{{url}}})", - "None": "Ninguno", - "The contract was not active during the selected date": "El contrato no estaba activo durante la fecha seleccionada", - "Cannot add more than one '1/2 day vacation'": "No puedes añadir más de un 'Vacaciones 1/2 dia'", - "This document already exists on this ticket": "Este documento ya existe en el ticket", - "Some of the selected tickets are not billable": "Algunos de los tickets seleccionados no son facturables", - "You can't invoice tickets from multiple clients": "No puedes facturar tickets de multiples clientes", - "nickname": "nickname", - "INACTIVE_PROVIDER": "Proveedor inactivo", - "This client is not invoiceable": "Este cliente no es facturable", - "serial non editable": "Esta serie no permite asignar la referencia", - "Max shipped required": "La fecha límite es requerida", - "Can't invoice to future": "No se puede facturar a futuro", - "Can't invoice to past": "No se puede facturar a pasado", - "This ticket is already invoiced": "Este ticket ya está facturado", - "A ticket with an amount of zero can't be invoiced": "No se puede facturar un ticket con importe cero", - "A ticket with a negative base can't be invoiced": "No se puede facturar un ticket con una base negativa", - "Global invoicing failed": "[Facturación global] No se han podido facturar algunos clientes", - "Wasn't able to invoice the following clients": "No se han podido facturar los siguientes clientes", - "Can't verify data unless the client has a business type": "No se puede verificar datos de un cliente que no tiene tipo de negocio", - "You don't have enough privileges to set this credit amount": "No tienes suficientes privilegios para establecer esta cantidad de crédito", - "You can't change the credit set to zero from a financialBoss": "No puedes cambiar el cŕedito establecido a cero por un jefe de finanzas", - "Amounts do not match": "Las cantidades no coinciden", - "The PDF document does not exist": "El documento PDF no existe. Prueba a regenerarlo desde la opción 'Regenerar PDF factura'", - "The type of business must be filled in basic data": "El tipo de negocio debe estar rellenado en datos básicos", - "You can't create a claim from a ticket delivered more than seven days ago": "No puedes crear una reclamación de un ticket entregado hace más de siete días", - "The worker has hours recorded that day": "El trabajador tiene horas fichadas ese día", - "The worker has a marked absence that day": "El trabajador tiene marcada una ausencia ese día", - "You can not modify is pay method checked": "No se puede modificar el campo método de pago validado", - "The account size must be exactly 10 characters": "El tamaño de la cuenta debe ser exactamente de 10 caracteres", - "Can't transfer claimed sales": "No puedes transferir lineas reclamadas", - "You don't have privileges to create refund": "No tienes permisos para crear un abono", - "The item is required": "El artículo es requerido", - "The agency is already assigned to another autonomous": "La agencia ya está asignada a otro autónomo", - "date in the future": "Fecha en el futuro", - "reference duplicated": "Referencia duplicada", - "This ticket is already a refund": "Este ticket ya es un abono", - "isWithoutNegatives": "Sin negativos", - "routeFk": "routeFk", - "Can't change the password of another worker": "No se puede cambiar la contraseña de otro trabajador", - "No hay un contrato en vigor": "No hay un contrato en vigor", - "No se permite fichar a futuro": "No se permite fichar a futuro", - "No está permitido trabajar": "No está permitido trabajar", - "Fichadas impares": "Fichadas impares", - "Descanso diario 12h.": "Descanso diario 12h.", - "Descanso semanal 36h. / 72h.": "Descanso semanal 36h. / 72h.", - "Dirección incorrecta": "Dirección incorrecta", - "Modifiable user details only by an administrator": "Detalles de usuario modificables solo por un administrador", - "Modifiable password only via recovery or by an administrator": "Contraseña modificable solo a través de la recuperación o por un administrador", - "Not enough privileges to edit a client": "No tienes suficientes privilegios para editar un cliente", - "This route does not exists": "Esta ruta no existe", - "Claim pickup order sent": "Reclamación Orden de recogida enviada [{{claimId}}]({{{claimUrl}}}) al cliente *{{clientName}}*", - "You don't have grant privilege": "No tienes privilegios para dar privilegios", - "You don't own the role and you can't assign it to another user": "No eres el propietario del rol y no puedes asignarlo a otro usuario", - "Ticket merged": "Ticket [{{originId}}]({{{originFullPath}}}) ({{{originDated}}}) fusionado con [{{destinationId}}]({{{destinationFullPath}}}) ({{{destinationDated}}})", - "Already has this status": "Ya tiene este estado", - "There aren't records for this week": "No existen registros para esta semana", - "Empty data source": "Origen de datos vacio", - "App locked": "Aplicación bloqueada por el usuario {{userId}}", - "Email verify": "Correo de verificación", - "Landing cannot be lesser than shipment": "Landing cannot be lesser than shipment", - "Receipt's bank was not found": "No se encontró el banco del recibo", - "This receipt was not compensated": "Este recibo no ha sido compensado", - "Client's email was not found": "No se encontró el email del cliente", - "Negative basis": "Base negativa", - "This worker code already exists": "Este codigo de trabajador ya existe", - "This personal mail already exists": "Este correo personal ya existe", - "This worker already exists": "Este trabajador ya existe", - "App name does not exist": "El nombre de aplicación no es válido", - "Try again": "Vuelve a intentarlo", - "Aplicación bloqueada por el usuario 9": "Aplicación bloqueada por el usuario 9", - "Failed to upload delivery note": "Error al subir albarán {{id}}", - "The DOCUWARE PDF document does not exists": "El documento PDF Docuware no existe", - "It is not possible to modify tracked sales": "No es posible modificar líneas de pedido que se hayan empezado a preparar", - "It is not possible to modify sales that their articles are from Floramondo": "No es posible modificar líneas de pedido cuyos artículos sean de Floramondo", - "It is not possible to modify cloned sales": "No es posible modificar líneas de pedido clonadas", - "A supplier with the same name already exists. Change the country.": "Un proveedor con el mismo nombre ya existe. Cambie el país.", - "There is no assigned email for this client": "No hay correo asignado para este cliente", - "Exists an invoice with a future date": "Existe una factura con fecha posterior", - "Invoice date can't be less than max date": "La fecha de factura no puede ser inferior a la fecha límite", - "Warehouse inventory not set": "El almacén inventario no está establecido", - "This locker has already been assigned": "Esta taquilla ya ha sido asignada", - "Tickets with associated refunds": "No se pueden borrar tickets con abonos asociados. Este ticket está asociado al abono Nº %s", - "Not exist this branch": "La rama no existe", - "This ticket cannot be signed because it has not been boxed": "Este ticket no puede firmarse porque no ha sido encajado", - "Collection does not exist": "La colección no existe", - "Cannot obtain exclusive lock": "No se puede obtener un bloqueo exclusivo", - "Insert a date range": "Inserte un rango de fechas", - "Added observation": "{{user}} añadió esta observacion: {{text}} {{defaulterId}} ({{{defaulterUrl}}})", - "Comment added to client": "Observación añadida al cliente {{clientFk}}", - "Invalid auth code": "Código de verificación incorrecto", - "Invalid or expired verification code": "Código de verificación incorrecto o expirado", - "Cannot create a new claimBeginning from a different ticket": "No se puede crear una línea de reclamación de un ticket diferente al origen", - "company": "Compañía", - "country": "País", - "clientId": "Id cliente", - "clientSocialName": "Cliente", - "amount": "Importe", - "taxableBase": "Base", - "ticketFk": "Id ticket", - "isActive": "Activo", - "hasToInvoice": "Facturar", - "isTaxDataChecked": "Datos comprobados", - "comercialId": "Id comercial", - "comercialName": "Comercial", - "Pass expired": "La contraseña ha caducado, cambiela desde Salix", - "Invalid NIF for VIES": "Invalid NIF for VIES", - "Ticket does not exist": "Este ticket no existe", - "Ticket is already signed": "Este ticket ya ha sido firmado", - "Authentication failed": "Autenticación fallida", - "You can't use the same password": "No puedes usar la misma contraseña", - "You can only add negative amounts in refund tickets": "Solo se puede añadir cantidades negativas en tickets abono", - "Fecha fuera de rango": "Fecha fuera de rango", - "Error while generating PDF": "Error al generar PDF", - "Error when sending mail to client": "Error al enviar el correo al cliente", - "Mail not sent": "Se ha producido un fallo al enviar la factura al cliente [{{clientId}}]({{{clientUrl}}}), por favor revisa la dirección de correo electrónico", - "The renew period has not been exceeded": "El periodo de renovación no ha sido superado", - "Valid priorities": "Prioridades válidas: %d", - "hasAnyNegativeBase": "Base negativa para los tickets: {{ticketsIds}}", - "hasAnyPositiveBase": "Base positivas para los tickets: {{ticketsIds}}", - "You cannot assign an alias that you are not assigned to": "No puede asignar un alias que no tenga asignado", - "This ticket cannot be left empty.": "Este ticket no se puede dejar vacío. %s", - "The company has not informed the supplier account for bank transfers": "La empresa no tiene informado la cuenta de proveedor para transferencias bancarias", - "You cannot assign/remove an alias that you are not assigned to": "No puede asignar/eliminar un alias que no tenga asignado", - "This invoice has a linked vehicle.": "Esta factura tiene un vehiculo vinculado", - "You don't have enough privileges.": "No tienes suficientes permisos.", - "This ticket is locked": "Este ticket está bloqueado.", - "This ticket is not editable.": "Este ticket no es editable.", - "The ticket doesn't exist.": "No existe el ticket.", - "Social name should be uppercase": "La razón social debe ir en mayúscula", - "Street should be uppercase": "La dirección fiscal debe ir en mayúscula", - "Ticket without Route": "Ticket sin ruta", - "Select a different client": "Seleccione un cliente distinto", - "Fill all the fields": "Rellene todos los campos", - "The response is not a PDF": "La respuesta no es un PDF", - "Booking completed": "Reserva completada", - "The ticket is in preparation": "El ticket [{{ticketId}}]({{{ticketUrl}}}) del comercial {{salesPersonId}} está en preparación", - "The notification subscription of this worker cant be modified": "La subscripción a la notificación de este trabajador no puede ser modificada", - "User disabled": "Usuario desactivado", - "The amount cannot be less than the minimum": "La cantidad no puede ser menor que la cantidad mínima", - "quantityLessThanMin": "La cantidad no puede ser menor que la cantidad mínima", - "Cannot past travels with entries": "No se pueden pasar envíos con entradas", - "It was not able to remove the next expeditions:": "No se pudo eliminar las siguientes expediciones: {{expeditions}}", - "This claim has been updated": "La reclamación con Id: {{claimId}}, ha sido actualizada", - "This user does not have an assigned tablet": "Este usuario no tiene tablet asignada", - "Field are invalid": "El campo '{{tag}}' no es válido", - "Incorrect pin": "Pin incorrecto.", - "You already have the mailAlias": "Ya tienes este alias de correo", - "The alias cant be modified": "Este alias de correo no puede ser modificado", - "No tickets to invoice": "No hay tickets para facturar que cumplan los requisitos de facturación", - "this warehouse has not dms": "El Almacén no acepta documentos", - "This ticket already has a cmr saved": "Este ticket ya tiene un cmr guardado", - "Name should be uppercase": "El nombre debe ir en mayúscula", - "Bank entity must be specified": "La entidad bancaria es obligatoria", - "An email is necessary": "Es necesario un email", - "You cannot update these fields": "No puedes actualizar estos campos", - "CountryFK cannot be empty": "El país no puede estar vacío", - "Cmr file does not exist": "El archivo del cmr no existe", - "You are not allowed to modify the alias": "No estás autorizado a modificar el alias", - "The address of the customer must have information about Incoterms and Customs Agent": "El consignatario del cliente debe tener informado Incoterms y Agente de aduanas", - "No invoice series found for these parameters": "No se encontró una serie para estos parámetros", - "The line could not be marked": "La linea no puede ser marcada", - "Through this procedure, it is not possible to modify the password of users with verified email": "Mediante este procedimiento, no es posible modificar la contraseña de usuarios con correo verificado", - "They're not your subordinate": "No es tu subordinado/a.", - "No results found": "No se han encontrado resultados", - "InvoiceIn is already booked": "La factura recibida está contabilizada", - "This workCenter is already assigned to this agency": "Este centro de trabajo ya está asignado a esta agencia", - "Select ticket or client": "Elija un ticket o un client", - "It was not able to create the invoice": "No se pudo crear la factura", - "Incoterms and Customs agent are required for a non UEE member": "Se requieren Incoterms y agente de aduanas para un no miembro de la UEE", - "You can not use the same password": "No puedes usar la misma contraseña", - "This PDA is already assigned to another user": "Este PDA ya está asignado a otro usuario", - "You can only have one PDA": "Solo puedes tener un PDA", - "The invoices have been created but the PDFs could not be generated": "Se ha facturado pero no se ha podido generar el PDF", - "It has been invoiced but the PDF of refund not be generated": "Se ha facturado pero no se ha podido generar el PDF del abono", - "Payment method is required": "El método de pago es obligatorio", - "Cannot send mail": "Não é possível enviar o email", - "CONSTRAINT `supplierAccountTooShort` failed for `vn`.`supplier`": "La cuenta debe tener exactamente 10 dígitos", - "The sale not exists in the item shelving": "La venta no existe en la estantería del artículo", - "The entry not have stickers": "La entrada no tiene etiquetas", - "Too many records": "Demasiados registros", - "Original invoice not found": "Factura original no encontrada", - "The entry has no lines or does not exist": "La entrada no tiene lineas o no existe", - "Weight already set": "El peso ya está establecido", - "This ticket is not allocated to your department": "Este ticket no está asignado a tu departamento", - "There is already a tray with the same height": "Ya existe una bandeja con la misma altura", - "The height must be greater than 50cm": "La altura debe ser superior a 50cm", - "The maximum height of the wagon is 200cm": "La altura máxima es 200cm", - "The entry does not have stickers": "La entrada no tiene etiquetas", - "This buyer has already made a reservation for this date": "Este comprador ya ha hecho una reserva para esta fecha", - "No valid travel thermograph found": "No se encontró un termógrafo válido", - "The quantity claimed cannot be greater than the quantity of the line": "La cantidad reclamada no puede ser mayor que la cantidad de la línea", - "type cannot be blank": "Se debe rellenar el tipo", - "There are tickets for this area, delete them first": "Hay tickets para esta sección, borralos primero", - "There is no company associated with that warehouse": "No hay ninguna empresa asociada a ese almacén", - "You do not have permission to modify the booked field": "No tienes permisos para modificar el campo contabilizada", - "ticketLostExpedition": "El ticket [{{ticketId}}]({{{ticketUrl}}}) tiene la siguiente expedición perdida:{{ expeditionId }}", - "The web user's email already exists": "El correo del usuario web ya existe", - "Sales already moved": "Ya han sido transferidas", - "The raid information is not correct": "La información de la redada no es correcta", - "An item type with the same code already exists": "Un tipo con el mismo código ya existe", - "Holidays to past days not available": "Las vacaciones a días pasados no están disponibles", - "All tickets have a route order": "Todos los tickets tienen orden de ruta", - "There are tickets to be invoiced": "La zona tiene tickets por facturar", - "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" + "Phone format is invalid": "El formato del teléfono no es correcto", + "You are not allowed to change the credit": "No tienes privilegios para modificar el crédito", + "Unable to mark the equivalence surcharge": "No se puede marcar el recargo de equivalencia", + "The default consignee can not be unchecked": "No se puede desmarcar el consignatario predeterminado", + "Unable to default a disabled consignee": "No se puede poner predeterminado un consignatario desactivado", + "Can't be blank": "No puede estar en blanco", + "Invalid TIN": "NIF/CIF inválido", + "TIN must be unique": "El NIF/CIF debe ser único", + "A client with that Web User name already exists": "Ya existe un cliente con ese Usuario Web", + "Is invalid": "Es inválido", + "Quantity cannot be zero": "La cantidad no puede ser cero", + "Enter an integer different to zero": "Introduce un entero distinto de cero", + "Package cannot be blank": "El embalaje no puede estar en blanco", + "The company name must be unique": "La razón social debe ser única", + "Invalid email": "Correo electrónico inválido", + "The IBAN does not have the correct format": "El IBAN no tiene el formato correcto", + "That payment method requires an IBAN": "El método de pago seleccionado requiere un IBAN", + "That payment method requires a BIC": "El método de pago seleccionado requiere un BIC", + "State cannot be blank": "El estado no puede estar en blanco", + "Worker cannot be blank": "El trabajador no puede estar en blanco", + "Cannot change the payment method if no salesperson": "No se puede cambiar la forma de pago si no hay comercial asignado", + "can't be blank": "El campo no puede estar vacío", + "Observation type must be unique": "El tipo de observación no puede repetirse", + "The credit must be an integer greater than or equal to zero": "The credit must be an integer greater than or equal to zero", + "The grade must be similar to the last one": "El grade debe ser similar al último", + "Only manager can change the credit": "Solo el gerente puede cambiar el credito de este cliente", + "Name cannot be blank": "El nombre no puede estar en blanco", + "Phone cannot be blank": "El teléfono no puede estar en blanco", + "Period cannot be blank": "El periodo no puede estar en blanco", + "Choose a company": "Selecciona una empresa", + "Se debe rellenar el campo de texto": "Se debe rellenar el campo de texto", + "Description should have maximum of 45 characters": "La descripción debe tener maximo 45 caracteres", + "Cannot be blank": "El campo no puede estar en blanco", + "The grade must be an integer greater than or equal to zero": "El grade debe ser un entero mayor o igual a cero", + "Sample type cannot be blank": "El tipo de plantilla no puede quedar en blanco", + "Description cannot be blank": "Se debe rellenar el campo de texto", + "The price of the item changed": "El precio del artículo cambió", + "The value should not be greater than 100%": "El valor no debe de ser mayor de 100%", + "The value should be a number": "El valor debe ser un numero", + "This order is not editable": "Esta orden no se puede modificar", + "You can't create an order for a frozen client": "No puedes crear una orden para un cliente congelado", + "You can't create an order for a client that has a debt": "No puedes crear una orden para un cliente con deuda", + "is not a valid date": "No es una fecha valida", + "Barcode must be unique": "El código de barras debe ser único", + "The warehouse can't be repeated": "El almacén no puede repetirse", + "The tag or priority can't be repeated for an item": "El tag o prioridad no puede repetirse para un item", + "The observation type can't be repeated": "El tipo de observación no puede repetirse", + "A claim with that sale already exists": "Ya existe una reclamación para esta línea", + "You don't have enough privileges to change that field": "No tienes permisos para cambiar ese campo", + "Warehouse cannot be blank": "El almacén no puede quedar en blanco", + "Agency cannot be blank": "La agencia no puede quedar en blanco", + "Not enough privileges to edit a client with verified data": "No tienes permisos para hacer cambios en un cliente con datos comprobados", + "This address doesn't exist": "Este consignatario no existe", + "You must delete the claim id %d first": "Antes debes borrar la reclamación %d", + "You don't have enough privileges": "No tienes suficientes permisos", + "Cannot check Equalization Tax in this NIF/CIF": "No se puede marcar RE en este NIF/CIF", + "You can't make changes on the basic data of an confirmed order or with rows": "No puedes cambiar los datos básicos de una orden con artículos", + "INVALID_USER_NAME": "El nombre de usuario solo debe contener letras minúsculas o, a partir del segundo carácter, números o subguiones, no está permitido el uso de la letra ñ", + "You can't create a ticket for a frozen client": "No puedes crear un ticket para un cliente congelado", + "You can't create a ticket for an inactive client": "No puedes crear un ticket para un cliente inactivo", + "Tag value cannot be blank": "El valor del tag no puede quedar en blanco", + "ORDER_EMPTY": "Cesta vacía", + "You don't have enough privileges to do that": "No tienes permisos para cambiar esto", + "NO SE PUEDE DESACTIVAR EL CONSIGNAT": "NO SE PUEDE DESACTIVAR EL CONSIGNAT", + "Error. El NIF/CIF está repetido": "Error. El NIF/CIF está repetido", + "Street cannot be empty": "Dirección no puede estar en blanco", + "City cannot be empty": "Ciudad no puede estar en blanco", + "Code cannot be blank": "Código no puede estar en blanco", + "You cannot remove this department": "No puedes eliminar este departamento", + "The extension must be unique": "La extensión debe ser unica", + "The secret can't be blank": "La contraseña no puede estar en blanco", + "We weren't able to send this SMS": "No hemos podido enviar el SMS", + "This client can't be invoiced": "Este cliente no puede ser facturado", + "You must provide the correction information to generate a corrective invoice": "Debes informar la información de corrección para generar una factura rectificativa", + "This ticket can't be invoiced": "Este ticket no puede ser facturado", + "You cannot add or modify services to an invoiced ticket": "No puedes añadir o modificar servicios a un ticket facturado", + "This ticket can not be modified": "Este ticket no puede ser modificado", + "The introduced hour already exists": "Esta hora ya ha sido introducida", + "INFINITE_LOOP": "Existe una dependencia entre dos Jefes", + "The sales of the receiver ticket can't be modified": "Las lineas del ticket al que envias no pueden ser modificadas", + "NO_AGENCY_AVAILABLE": "No hay una zona de reparto disponible con estos parámetros", + "ERROR_PAST_SHIPMENT": "No puedes seleccionar una fecha de envío en pasado", + "The current ticket can't be modified": "El ticket actual no puede ser modificado", + "The current claim can't be modified": "La reclamación actual no puede ser modificada", + "The sales of this ticket can't be modified": "Las lineas de este ticket no pueden ser modificadas", + "The sales do not exists": "La(s) línea(s) seleccionada(s) no existe(n)", + "Please select at least one sale": "Por favor selecciona al menos una linea", + "All sales must belong to the same ticket": "Todas las lineas deben pertenecer al mismo ticket", + "NO_ZONE_FOR_THIS_PARAMETERS": "Para este día no hay ninguna zona configurada", + "This item doesn't exists": "El artículo no existe", + "NOT_ZONE_WITH_THIS_PARAMETERS": "Para este día no hay ninguna zona configurada", + "Extension format is invalid": "El formato de la extensión es inválido", + "Invalid parameters to create a new ticket": "Parámetros inválidos para crear un nuevo ticket", + "This item is not available": "Este artículo no está disponible", + "This postcode already exists": "Este código postal ya existe", + "Concept cannot be blank": "El concepto no puede quedar en blanco", + "File doesn't exists": "El archivo no existe", + "You don't have privileges to change the zone": "No tienes permisos para cambiar la zona o para esos parámetros hay más de una opción de envío, hable con las agencias", + "This ticket is already on weekly tickets": "Este ticket ya está en tickets programados", + "Ticket id cannot be blank": "El id de ticket no puede quedar en blanco", + "Weekday cannot be blank": "El día de la semana no puede quedar en blanco", + "You can't delete a confirmed order": "No puedes borrar un pedido confirmado", + "The social name has an invalid format": "El nombre fiscal tiene un formato incorrecto", + "Invalid quantity": "Cantidad invalida", + "This postal code is not valid": "Este código postal no es válido", + "is invalid": "es inválido", + "The postcode doesn't exist. Please enter a correct one": "El código postal no existe. Por favor, introduce uno correcto", + "The department name can't be repeated": "El nombre del departamento no puede repetirse", + "This phone already exists": "Este teléfono ya existe", + "You cannot move a parent to its own sons": "No puedes mover un elemento padre a uno de sus hijos", + "You can't create a claim for a removed ticket": "No puedes crear una reclamación para un ticket eliminado", + "You cannot delete a ticket that part of it is being prepared": "No puedes eliminar un ticket en el que una parte que está siendo preparada", + "You must delete all the buy requests first": "Debes eliminar todas las peticiones de compra primero", + "You should specify a date": "Debes especificar una fecha", + "You should specify at least a start or end date": "Debes especificar al menos una fecha de inicio o de fin", + "Start date should be lower than end date": "La fecha de inicio debe ser menor que la fecha de fin", + "You should mark at least one week day": "Debes marcar al menos un día de la semana", + "Swift / BIC can't be empty": "Swift / BIC no puede estar vacío", + "Customs agent is required for a non UEE member": "El agente de aduanas es requerido para los clientes extracomunitarios", + "Incoterms is required for a non UEE member": "El incoterms es requerido para los clientes extracomunitarios", + "Deleted sales from ticket": "He eliminado las siguientes lineas del ticket [{{ticketId}}]({{{ticketUrl}}}): {{{deletions}}}", + "Added sale to ticket": "He añadido la siguiente linea al ticket [{{ticketId}}]({{{ticketUrl}}}): {{{addition}}}", + "Changed sale discount": "He cambiado el descuento de las siguientes lineas al ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", + "Created claim": "He creado la reclamación [{{claimId}}]({{{claimUrl}}}) de las siguientes lineas del ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", + "Changed sale price": "He cambiado el precio de [{{itemId}} {{concept}}]({{{itemUrl}}}) ({{quantity}}) de {{oldPrice}}€ ➔ *{{newPrice}}€* del ticket [{{ticketId}}]({{{ticketUrl}}})", + "Changed sale quantity": "He cambiado {{changes}} del ticket [{{ticketId}}]({{{ticketUrl}}})", + "Changes in sales": "la cantidad de [{{itemId}} {{concept}}]({{{itemUrl}}}) de {{oldQuantity}} ➔ *{{newQuantity}}*", + "State": "Estado", + "regular": "normal", + "reserved": "reservado", + "Changed sale reserved state": "He cambiado el estado reservado de las siguientes lineas al ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", + "Bought units from buy request": "Se ha comprado {{quantity}} unidades de [{{itemId}} {{concept}}]({{{urlItem}}}) para el ticket id [{{ticketId}}]({{{url}}})", + "Deny buy request": "Se ha rechazado la petición de compra para el ticket id [{{ticketId}}]({{{url}}}). Motivo: {{observation}}", + "MESSAGE_INSURANCE_CHANGE": "He cambiado el crédito asegurado del cliente [{{clientName}} ({{clientId}})]({{{url}}}) a *{{credit}} €*", + "Changed client paymethod": "He cambiado la forma de pago del cliente [{{clientName}} ({{clientId}})]({{{url}}})", + "Sent units from ticket": "Envio *{{quantity}}* unidades de [{{concept}} ({{itemId}})]({{{itemUrl}}}) a *\"{{nickname}}\"* provenientes del ticket id [{{ticketId}}]({{{ticketUrl}}})", + "Change quantity": "{{concept}} cambia de {{oldQuantity}} a {{newQuantity}}", + "Claim will be picked": "Se recogerá el género de la reclamación [({{claimId}})]({{{claimUrl}}}) del cliente *{{clientName}}*, con el tipo de recogida *{{claimPickup}}*", + "Claim state has changed to": "Se ha cambiado el estado de la reclamación [({{claimId}})]({{{claimUrl}}}) del cliente *{{clientName}}* a *{{newState}}*", + "Client checked as validated despite of duplication": "Cliente comprobado a pesar de que existe el cliente id {{clientId}}", + "ORDER_ROW_UNAVAILABLE": "No hay disponibilidad de este producto", + "Distance must be lesser than 4000": "La distancia debe ser inferior a 4000", + "This ticket is deleted": "Este ticket está eliminado", + "Unable to clone this travel": "No ha sido posible clonar este travel", + "This thermograph id already exists": "La id del termógrafo ya existe", + "Choose a date range or days forward": "Selecciona un rango de fechas o días en adelante", + "ORDER_ALREADY_CONFIRMED": "ORDEN YA CONFIRMADA", + "Invalid password": "Invalid password", + "Password does not meet requirements": "La contraseña no cumple los requisitos", + "Role already assigned": "Rol ya asignado", + "Invalid role name": "Nombre de rol no válido", + "Role name must be written in camelCase": "El nombre del rol debe escribirse en camelCase", + "Email already exists": "El correo ya existe", + "User already exists": "El/La usuario/a ya existe", + "Absence change notification on the labour calendar": "Notificación de cambio de ausencia en el calendario laboral", + "Record of hours week": "Registro de horas semana {{week}} año {{year}} ", + "Created absence": "El empleado {{author}} ha añadido una ausencia de tipo '{{absenceType}}' a {{employee}} para el día {{dated}}.", + "Deleted absence": "El empleado {{author}} ha eliminado una ausencia de tipo '{{absenceType}}' a {{employee}} del día {{dated}}.", + "I have deleted the ticket id": "He eliminado el ticket id [{{id}}]({{{url}}})", + "I have restored the ticket id": "He restaurado el ticket id [{{id}}]({{{url}}})", + "You can only restore a ticket within the first hour after deletion": "Únicamente puedes restaurar el ticket dentro de la primera hora después de su eliminación", + "Changed this data from the ticket": "He cambiado estos datos del ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", + "agencyModeFk": "Agencia", + "clientFk": "Cliente", + "zoneFk": "Zona", + "warehouseFk": "Almacén", + "shipped": "F. envío", + "landed": "F. entrega", + "addressFk": "Consignatario", + "companyFk": "Empresa", + "agency": "Agencia", + "delivery": "Reparto", + "The social name cannot be empty": "La razón social no puede quedar en blanco", + "The nif cannot be empty": "El NIF no puede quedar en blanco", + "You need to fill sage information before you check verified data": "Debes rellenar la información de sage antes de marcar datos comprobados", + "ASSIGN_ZONE_FIRST": "Asigna una zona primero", + "Amount cannot be zero": "El importe no puede ser cero", + "Company has to be official": "Empresa inválida", + "You can not select this payment method without a registered bankery account": "No se puede utilizar este método de pago si no has registrado una cuenta bancaria", + "Action not allowed on the test environment": "Esta acción no está permitida en el entorno de pruebas", + "The selected ticket is not suitable for this route": "El ticket seleccionado no es apto para esta ruta", + "New ticket request has been created with price": "Se ha creado una nueva petición de compra '{{description}}' para el día *{{shipped}}*, con una cantidad de *{{quantity}}* y un precio de *{{price}} €*", + "New ticket request has been created": "Se ha creado una nueva petición de compra '{{description}}' para el día *{{shipped}}*, con una cantidad de *{{quantity}}*", + "Swift / BIC cannot be empty": "Swift / BIC no puede estar vacío", + "This BIC already exist.": "Este BIC ya existe.", + "That item doesn't exists": "Ese artículo no existe", + "There's a new urgent ticket:": "Hay un nuevo ticket urgente:", + "Invalid account": "Cuenta inválida", + "Compensation account is empty": "La cuenta para compensar está vacia", + "This genus already exist": "Este genus ya existe", + "This specie already exist": "Esta especie ya existe", + "Client assignment has changed": "He cambiado el comercial ~*\"<{{previousWorkerName}}>\"*~ por *\"<{{currentWorkerName}}>\"* del cliente [{{clientName}} ({{clientId}})]({{{url}}})", + "None": "Ninguno", + "The contract was not active during the selected date": "El contrato no estaba activo durante la fecha seleccionada", + "Cannot add more than one '1/2 day vacation'": "No puedes añadir más de un 'Vacaciones 1/2 dia'", + "This document already exists on this ticket": "Este documento ya existe en el ticket", + "Some of the selected tickets are not billable": "Algunos de los tickets seleccionados no son facturables", + "You can't invoice tickets from multiple clients": "No puedes facturar tickets de multiples clientes", + "nickname": "nickname", + "INACTIVE_PROVIDER": "Proveedor inactivo", + "This client is not invoiceable": "Este cliente no es facturable", + "serial non editable": "Esta serie no permite asignar la referencia", + "Max shipped required": "La fecha límite es requerida", + "Can't invoice to future": "No se puede facturar a futuro", + "Can't invoice to past": "No se puede facturar a pasado", + "This ticket is already invoiced": "Este ticket ya está facturado", + "A ticket with an amount of zero can't be invoiced": "No se puede facturar un ticket con importe cero", + "A ticket with a negative base can't be invoiced": "No se puede facturar un ticket con una base negativa", + "Global invoicing failed": "[Facturación global] No se han podido facturar algunos clientes", + "Wasn't able to invoice the following clients": "No se han podido facturar los siguientes clientes", + "Can't verify data unless the client has a business type": "No se puede verificar datos de un cliente que no tiene tipo de negocio", + "You don't have enough privileges to set this credit amount": "No tienes suficientes privilegios para establecer esta cantidad de crédito", + "You can't change the credit set to zero from a financialBoss": "No puedes cambiar el cŕedito establecido a cero por un jefe de finanzas", + "Amounts do not match": "Las cantidades no coinciden", + "The PDF document does not exist": "El documento PDF no existe. Prueba a regenerarlo desde la opción 'Regenerar PDF factura'", + "The type of business must be filled in basic data": "El tipo de negocio debe estar rellenado en datos básicos", + "You can't create a claim from a ticket delivered more than seven days ago": "No puedes crear una reclamación de un ticket entregado hace más de siete días", + "The worker has hours recorded that day": "El trabajador tiene horas fichadas ese día", + "The worker has a marked absence that day": "El trabajador tiene marcada una ausencia ese día", + "You can not modify is pay method checked": "No se puede modificar el campo método de pago validado", + "The account size must be exactly 10 characters": "El tamaño de la cuenta debe ser exactamente de 10 caracteres", + "Can't transfer claimed sales": "No puedes transferir lineas reclamadas", + "You don't have privileges to create refund": "No tienes permisos para crear un abono", + "The item is required": "El artículo es requerido", + "The agency is already assigned to another autonomous": "La agencia ya está asignada a otro autónomo", + "date in the future": "Fecha en el futuro", + "reference duplicated": "Referencia duplicada", + "This ticket is already a refund": "Este ticket ya es un abono", + "isWithoutNegatives": "Sin negativos", + "routeFk": "routeFk", + "Can't change the password of another worker": "No se puede cambiar la contraseña de otro trabajador", + "No hay un contrato en vigor": "No hay un contrato en vigor", + "No se permite fichar a futuro": "No se permite fichar a futuro", + "No está permitido trabajar": "No está permitido trabajar", + "Fichadas impares": "Fichadas impares", + "Descanso diario 12h.": "Descanso diario 12h.", + "Descanso semanal 36h. / 72h.": "Descanso semanal 36h. / 72h.", + "Dirección incorrecta": "Dirección incorrecta", + "Modifiable user details only by an administrator": "Detalles de usuario modificables solo por un administrador", + "Modifiable password only via recovery or by an administrator": "Contraseña modificable solo a través de la recuperación o por un administrador", + "Not enough privileges to edit a client": "No tienes suficientes privilegios para editar un cliente", + "This route does not exists": "Esta ruta no existe", + "Claim pickup order sent": "Reclamación Orden de recogida enviada [{{claimId}}]({{{claimUrl}}}) al cliente *{{clientName}}*", + "You don't have grant privilege": "No tienes privilegios para dar privilegios", + "You don't own the role and you can't assign it to another user": "No eres el propietario del rol y no puedes asignarlo a otro usuario", + "Ticket merged": "Ticket [{{originId}}]({{{originFullPath}}}) ({{{originDated}}}) fusionado con [{{destinationId}}]({{{destinationFullPath}}}) ({{{destinationDated}}})", + "Already has this status": "Ya tiene este estado", + "There aren't records for this week": "No existen registros para esta semana", + "Empty data source": "Origen de datos vacio", + "App locked": "Aplicación bloqueada por el usuario {{userId}}", + "Email verify": "Correo de verificación", + "Landing cannot be lesser than shipment": "Landing cannot be lesser than shipment", + "Receipt's bank was not found": "No se encontró el banco del recibo", + "This receipt was not compensated": "Este recibo no ha sido compensado", + "Client's email was not found": "No se encontró el email del cliente", + "Negative basis": "Base negativa", + "This worker code already exists": "Este codigo de trabajador ya existe", + "This personal mail already exists": "Este correo personal ya existe", + "This worker already exists": "Este trabajador ya existe", + "App name does not exist": "El nombre de aplicación no es válido", + "Try again": "Vuelve a intentarlo", + "Aplicación bloqueada por el usuario 9": "Aplicación bloqueada por el usuario 9", + "Failed to upload delivery note": "Error al subir albarán {{id}}", + "The DOCUWARE PDF document does not exists": "El documento PDF Docuware no existe", + "It is not possible to modify tracked sales": "No es posible modificar líneas de pedido que se hayan empezado a preparar", + "It is not possible to modify sales that their articles are from Floramondo": "No es posible modificar líneas de pedido cuyos artículos sean de Floramondo", + "It is not possible to modify cloned sales": "No es posible modificar líneas de pedido clonadas", + "A supplier with the same name already exists. Change the country.": "Un proveedor con el mismo nombre ya existe. Cambie el país.", + "There is no assigned email for this client": "No hay correo asignado para este cliente", + "Exists an invoice with a future date": "Existe una factura con fecha posterior", + "Invoice date can't be less than max date": "La fecha de factura no puede ser inferior a la fecha límite", + "Warehouse inventory not set": "El almacén inventario no está establecido", + "This locker has already been assigned": "Esta taquilla ya ha sido asignada", + "Tickets with associated refunds": "No se pueden borrar tickets con abonos asociados. Este ticket está asociado al abono Nº %s", + "Not exist this branch": "La rama no existe", + "This ticket cannot be signed because it has not been boxed": "Este ticket no puede firmarse porque no ha sido encajado", + "Collection does not exist": "La colección no existe", + "Cannot obtain exclusive lock": "No se puede obtener un bloqueo exclusivo", + "Insert a date range": "Inserte un rango de fechas", + "Added observation": "{{user}} añadió esta observacion: {{text}} {{defaulterId}} ({{{defaulterUrl}}})", + "Comment added to client": "Observación añadida al cliente {{clientFk}}", + "Invalid auth code": "Código de verificación incorrecto", + "Invalid or expired verification code": "Código de verificación incorrecto o expirado", + "Cannot create a new claimBeginning from a different ticket": "No se puede crear una línea de reclamación de un ticket diferente al origen", + "company": "Compañía", + "country": "País", + "clientId": "Id cliente", + "clientSocialName": "Cliente", + "amount": "Importe", + "taxableBase": "Base", + "ticketFk": "Id ticket", + "isActive": "Activo", + "hasToInvoice": "Facturar", + "isTaxDataChecked": "Datos comprobados", + "comercialId": "Id comercial", + "comercialName": "Comercial", + "Pass expired": "La contraseña ha caducado, cambiela desde Salix", + "Invalid NIF for VIES": "Invalid NIF for VIES", + "Ticket does not exist": "Este ticket no existe", + "Ticket is already signed": "Este ticket ya ha sido firmado", + "Authentication failed": "Autenticación fallida", + "You can't use the same password": "No puedes usar la misma contraseña", + "You can only add negative amounts in refund tickets": "Solo se puede añadir cantidades negativas en tickets abono", + "Fecha fuera de rango": "Fecha fuera de rango", + "Error while generating PDF": "Error al generar PDF", + "Error when sending mail to client": "Error al enviar el correo al cliente", + "Mail not sent": "Se ha producido un fallo al enviar la factura al cliente [{{clientId}}]({{{clientUrl}}}), por favor revisa la dirección de correo electrónico", + "The renew period has not been exceeded": "El periodo de renovación no ha sido superado", + "Valid priorities": "Prioridades válidas: %d", + "hasAnyNegativeBase": "Base negativa para los tickets: {{ticketsIds}}", + "hasAnyPositiveBase": "Base positivas para los tickets: {{ticketsIds}}", + "You cannot assign an alias that you are not assigned to": "No puede asignar un alias que no tenga asignado", + "This ticket cannot be left empty.": "Este ticket no se puede dejar vacío. %s", + "The company has not informed the supplier account for bank transfers": "La empresa no tiene informado la cuenta de proveedor para transferencias bancarias", + "You cannot assign/remove an alias that you are not assigned to": "No puede asignar/eliminar un alias que no tenga asignado", + "This invoice has a linked vehicle.": "Esta factura tiene un vehiculo vinculado", + "You don't have enough privileges.": "No tienes suficientes permisos.", + "This ticket is locked": "Este ticket está bloqueado.", + "This ticket is not editable.": "Este ticket no es editable.", + "The ticket doesn't exist.": "No existe el ticket.", + "Social name should be uppercase": "La razón social debe ir en mayúscula", + "Street should be uppercase": "La dirección fiscal debe ir en mayúscula", + "Ticket without Route": "Ticket sin ruta", + "Select a different client": "Seleccione un cliente distinto", + "Fill all the fields": "Rellene todos los campos", + "The response is not a PDF": "La respuesta no es un PDF", + "Booking completed": "Reserva completada", + "The ticket is in preparation": "El ticket [{{ticketId}}]({{{ticketUrl}}}) del comercial {{salesPersonId}} está en preparación", + "The notification subscription of this worker cant be modified": "La subscripción a la notificación de este trabajador no puede ser modificada", + "User disabled": "Usuario desactivado", + "The amount cannot be less than the minimum": "La cantidad no puede ser menor que la cantidad mínima", + "quantityLessThanMin": "La cantidad no puede ser menor que la cantidad mínima", + "Cannot past travels with entries": "No se pueden pasar envíos con entradas", + "It was not able to remove the next expeditions:": "No se pudo eliminar las siguientes expediciones: {{expeditions}}", + "This claim has been updated": "La reclamación con Id: {{claimId}}, ha sido actualizada", + "This user does not have an assigned tablet": "Este usuario no tiene tablet asignada", + "Field are invalid": "El campo '{{tag}}' no es válido", + "Incorrect pin": "Pin incorrecto.", + "You already have the mailAlias": "Ya tienes este alias de correo", + "The alias cant be modified": "Este alias de correo no puede ser modificado", + "No tickets to invoice": "No hay tickets para facturar que cumplan los requisitos de facturación", + "this warehouse has not dms": "El Almacén no acepta documentos", + "This ticket already has a cmr saved": "Este ticket ya tiene un cmr guardado", + "Name should be uppercase": "El nombre debe ir en mayúscula", + "Bank entity must be specified": "La entidad bancaria es obligatoria", + "An email is necessary": "Es necesario un email", + "You cannot update these fields": "No puedes actualizar estos campos", + "CountryFK cannot be empty": "El país no puede estar vacío", + "Cmr file does not exist": "El archivo del cmr no existe", + "You are not allowed to modify the alias": "No estás autorizado a modificar el alias", + "The address of the customer must have information about Incoterms and Customs Agent": "El consignatario del cliente debe tener informado Incoterms y Agente de aduanas", + "No invoice series found for these parameters": "No se encontró una serie para estos parámetros", + "The line could not be marked": "La linea no puede ser marcada", + "Through this procedure, it is not possible to modify the password of users with verified email": "Mediante este procedimiento, no es posible modificar la contraseña de usuarios con correo verificado", + "They're not your subordinate": "No es tu subordinado/a.", + "No results found": "No se han encontrado resultados", + "InvoiceIn is already booked": "La factura recibida está contabilizada", + "This workCenter is already assigned to this agency": "Este centro de trabajo ya está asignado a esta agencia", + "Select ticket or client": "Elija un ticket o un client", + "It was not able to create the invoice": "No se pudo crear la factura", + "Incoterms and Customs agent are required for a non UEE member": "Se requieren Incoterms y agente de aduanas para un no miembro de la UEE", + "You can not use the same password": "No puedes usar la misma contraseña", + "This PDA is already assigned to another user": "Este PDA ya está asignado a otro usuario", + "You can only have one PDA": "Solo puedes tener un PDA", + "The invoices have been created but the PDFs could not be generated": "Se ha facturado pero no se ha podido generar el PDF", + "It has been invoiced but the PDF of refund not be generated": "Se ha facturado pero no se ha podido generar el PDF del abono", + "Payment method is required": "El método de pago es obligatorio", + "Cannot send mail": "Não é possível enviar o email", + "CONSTRAINT `supplierAccountTooShort` failed for `vn`.`supplier`": "La cuenta debe tener exactamente 10 dígitos", + "The sale not exists in the item shelving": "La venta no existe en la estantería del artículo", + "The entry not have stickers": "La entrada no tiene etiquetas", + "Too many records": "Demasiados registros", + "Original invoice not found": "Factura original no encontrada", + "The entry has no lines or does not exist": "La entrada no tiene lineas o no existe", + "Weight already set": "El peso ya está establecido", + "This ticket is not allocated to your department": "Este ticket no está asignado a tu departamento", + "There is already a tray with the same height": "Ya existe una bandeja con la misma altura", + "The height must be greater than 50cm": "La altura debe ser superior a 50cm", + "The maximum height of the wagon is 200cm": "La altura máxima es 200cm", + "The entry does not have stickers": "La entrada no tiene etiquetas", + "This buyer has already made a reservation for this date": "Este comprador ya ha hecho una reserva para esta fecha", + "No valid travel thermograph found": "No se encontró un termógrafo válido", + "The quantity claimed cannot be greater than the quantity of the line": "La cantidad reclamada no puede ser mayor que la cantidad de la línea", + "type cannot be blank": "Se debe rellenar el tipo", + "There are tickets for this area, delete them first": "Hay tickets para esta sección, borralos primero", + "There is no company associated with that warehouse": "No hay ninguna empresa asociada a ese almacén", + "You do not have permission to modify the booked field": "No tienes permisos para modificar el campo contabilizada", + "ticketLostExpedition": "El ticket [{{ticketId}}]({{{ticketUrl}}}) tiene la siguiente expedición perdida:{{ expeditionId }}", + "The web user's email already exists": "El correo del usuario web ya existe", + "Sales already moved": "Ya han sido transferidas", + "The raid information is not correct": "La información de la redada no es correcta", + "An item type with the same code already exists": "Un tipo con el mismo código ya existe", + "Holidays to past days not available": "Las vacaciones a días pasados no están disponibles", + "All tickets have a route order": "Todos los tickets tienen orden de ruta", + "There are tickets to be invoiced": "La zona tiene tickets por facturar", + "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 sido entregado en su orden.", + "Price cannot be blank": "El precio no puede estar en blanco" } From 9cecdab5a823c2d45d50beb9771c93d94ba32478 Mon Sep 17 00:00:00 2001 From: guillermo Date: Tue, 4 Feb 2025 07:17:11 +0100 Subject: [PATCH 133/149] refactor: refs #8227 Fix tests --- db/dump/fixtures.before.sql | 6 +++--- .../back/methods/agency-term/specs/filter.spec.js | 10 +++++----- modules/route/back/methods/route/specs/filter.spec.js | 6 +++--- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/db/dump/fixtures.before.sql b/db/dump/fixtures.before.sql index 5e23178ecd..98c7f42f85 100644 --- a/db/dump/fixtures.before.sql +++ b/db/dump/fixtures.before.sql @@ -752,11 +752,11 @@ INSERT INTO `vn`.`zoneConfig` (`id`, `scope`) VALUES (1, '1'); INSERT INTO `vn`.`route`(`id`, `time`, `workerFk`, `created`, `vehicleFk`, `agencyModeFk`, `description`, `m3`, `cost`, `started`, `finished`, `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), 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), 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), 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), util.VN_CURDATE()), + (3, '1899-12-30 14:30:00', 133, util.VN_CURDATE(), 2, 3, 'third route', 0.5, 30, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 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), 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), util.VN_CURDATE()), + (5, '1899-12-30 16:00:00', 133, util.VN_CURDATE(), 4, 5, 'fifth route', 0.1, 50, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 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), 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), util.VN_CURDATE()); diff --git a/modules/route/back/methods/agency-term/specs/filter.spec.js b/modules/route/back/methods/agency-term/specs/filter.spec.js index aa27438688..41e696157d 100644 --- a/modules/route/back/methods/agency-term/specs/filter.spec.js +++ b/modules/route/back/methods/agency-term/specs/filter.spec.js @@ -18,7 +18,7 @@ describe('AgencyTerm filter()', () => { const firstAgencyTerm = agencyTerms[0]; expect(firstAgencyTerm.routeFk).toEqual(1); - expect(agencyTerms.length).toEqual(7); + expect(agencyTerms.length).toEqual(5); await tx.rollback(); } catch (e) { @@ -49,7 +49,7 @@ describe('AgencyTerm filter()', () => { let result = await app.models.AgencyTerm.filter(ctx); - expect(result.length).toEqual(4); + expect(result.length).toEqual(2); }); 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(7); + expect(results.length).toBe(5); await tx.rollback(); } catch (e) { @@ -90,7 +90,7 @@ describe('AgencyTerm filter()', () => { let result = await app.models.AgencyTerm.filter(ctx); - expect(result.length).toEqual(2); + expect(result.length).toEqual(1); 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(2); + expect(result.length).toEqual(1); expect(result[0].routeFk).toEqual(2); }); }); diff --git a/modules/route/back/methods/route/specs/filter.spec.js b/modules/route/back/methods/route/specs/filter.spec.js index 11bf0b7b0a..ddc2fe893d 100644 --- a/modules/route/back/methods/route/specs/filter.spec.js +++ b/modules/route/back/methods/route/specs/filter.spec.js @@ -59,7 +59,7 @@ describe('Route filter()', () => { }; const results = await models.Route.filter(ctx, options); - expect(results.length).toBe(9); + expect(results.length).toBe(7); await tx.rollback(); } catch (e) { @@ -115,7 +115,7 @@ describe('Route filter()', () => { }; const result = await app.models.Route.filter(ctx); - expect(result.length).toEqual(4); + expect(result.length).toEqual(2); }); it('should return the routes matching "warehouseFk"', async() => { @@ -132,7 +132,7 @@ describe('Route filter()', () => { let result = await app.models.Route.filter(ctx); - expect(result.length).toEqual(9); + expect(result.length).toEqual(7); ctx.args.warehouseFk = 2; From fb8973a35834f6983e7dc8393a1072a56be46733 Mon Sep 17 00:00:00 2001 From: guillermo Date: Tue, 4 Feb 2025 07:47:28 +0100 Subject: [PATCH 134/149] fix: refs #8515 Fix test optimizePriority --- .../methods/route/specs/optimizePriority.spec.js | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/modules/route/back/methods/route/specs/optimizePriority.spec.js b/modules/route/back/methods/route/specs/optimizePriority.spec.js index c1c2dc45e2..f3f939645b 100644 --- a/modules/route/back/methods/route/specs/optimizePriority.spec.js +++ b/modules/route/back/methods/route/specs/optimizePriority.spec.js @@ -1,7 +1,16 @@ const models = require('vn-loopback/server/server').models; const routeId = 1; -describe('route optimizePriority())', function() { +fdescribe('route optimizePriority()', function() { + beforeEach(() => { + spyOn(models.OsrmConfig, 'optimize').and.returnValue( + Promise.resolve([ + {addressId: 1, position: 0}, + {addressId: 2, position: 1} + ]) + ); + }); + it('should execute without throwing errors', async function() { const tx = await models.Route.beginTransaction({}); let error; @@ -20,9 +29,10 @@ describe('route optimizePriority())', function() { } expect(error).toBeUndefined(); + expect(models.OsrmConfig.optimize).toHaveBeenCalled(); }); - it('should execute with error', async function() { + it('should execute with error when all tickets have a route order', async function() { let error; try { await models.Route.optimizePriority(routeId); From 49e5da5547a705b00a4a28a7dc984b6678a02943 Mon Sep 17 00:00:00 2001 From: guillermo Date: Tue, 4 Feb 2025 07:48:56 +0100 Subject: [PATCH 135/149] fix: refs #8515 Fix test optimizePriority --- modules/route/back/methods/route/specs/optimizePriority.spec.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/route/back/methods/route/specs/optimizePriority.spec.js b/modules/route/back/methods/route/specs/optimizePriority.spec.js index f3f939645b..94072fd884 100644 --- a/modules/route/back/methods/route/specs/optimizePriority.spec.js +++ b/modules/route/back/methods/route/specs/optimizePriority.spec.js @@ -1,7 +1,7 @@ const models = require('vn-loopback/server/server').models; const routeId = 1; -fdescribe('route optimizePriority()', function() { +describe('route optimizePriority()', function() { beforeEach(() => { spyOn(models.OsrmConfig, 'optimize').and.returnValue( Promise.resolve([ From eb9d3a7b21b8371e9ae14115fc3282e859d05242 Mon Sep 17 00:00:00 2001 From: guillermo Date: Tue, 4 Feb 2025 08:27:21 +0100 Subject: [PATCH 136/149] refactor: refs #8227 Requested changes --- .../vn/procedures/roadmap_cloneDay.sql | 55 ++++++++++--------- 1 file changed, 28 insertions(+), 27 deletions(-) diff --git a/db/routines/vn/procedures/roadmap_cloneDay.sql b/db/routines/vn/procedures/roadmap_cloneDay.sql index 4247b881e8..8c38039473 100644 --- a/db/routines/vn/procedures/roadmap_cloneDay.sql +++ b/db/routines/vn/procedures/roadmap_cloneDay.sql @@ -12,8 +12,15 @@ BEGIN * @param vDateToPaste Fecha para pegar */ DECLARE vDaysDiff INT; - DECLARE vNextRoadmapId INT; + DECLARE vRoadmapFk INT; + DECLARE vNewRoadmapFk INT; + DECLARE vDone BOOL DEFAULT FALSE; + DECLARE vRoadmaps CURSOR FOR + SELECT id + FROM roadmap + WHERE etd BETWEEN vDateToCopy AND util.dayEnd(vDateToCopy); + DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE; DECLARE EXIT HANDLER FOR SQLEXCEPTION BEGIN ROLLBACK; @@ -28,23 +35,14 @@ BEGIN START TRANSACTION; - SELECT AUTO_INCREMENT INTO vNextRoadmapId - FROM information_schema.tables - WHERE table_name = 'roadmap' - AND table_schema = 'vn'; + OPEN vRoadmaps; + l: LOOP + SET vDone = FALSE; + FETCH vRoadmaps INTO vRoadmapFk; - CREATE OR REPLACE TEMPORARY TABLE tmp.roadmapsToCopy - ENGINE = MEMORY - SELECT ROW_NUMBER() OVER(ORDER BY id) rowOrder, - id, - `name`, - roadmapAddressFk, - etd, - eta, - observations, - price - FROM roadmap - WHERE etd BETWEEN vDateToCopy AND util.dayEnd(vDateToCopy); + IF vDone THEN + LEAVE l; + END IF; INSERT INTO roadmap (`name`, roadmapAddressFk, etd, eta, observations, price) SELECT `name`, @@ -53,19 +51,22 @@ BEGIN eta + INTERVAL vDaysDiff DAY, observations, price - FROM tmp.roadmapsToCopy; + FROM roadmap + WHERE id = vRoadmapFk; + + SET vNewRoadmapFk = LAST_INSERT_ID(); INSERT INTO roadmapStop (roadmapFk, roadmapAddressFk, eta, `description`, bufferFk) - SELECT (rtc.rowOrder - 1) + vNextRoadmapId, - rs.roadmapAddressFk, - rs.eta + INTERVAL vDaysDiff DAY, - rs.description, - rs.bufferFk - FROM tmp.roadmapsToCopy rtc - JOIN roadmapStop rs ON rs.roadmapFk = rtc.id; + SELECT vNewRoadmapFk, + roadmapAddressFk, + eta + INTERVAL vDaysDiff DAY, + `description`, + bufferFk + FROM roadmapStop + WHERE roadmapFk = vRoadmapFk; + END LOOP; + CLOSE vRoadmaps; COMMIT; - - DROP TEMPORARY TABLE tmp.roadmapsToCopy; END$$ DELIMITER ; From 5258e5ba2ab08a38086d33b94ba6f973f9292e57 Mon Sep 17 00:00:00 2001 From: Jon Date: Tue, 4 Feb 2025 13:55:01 +0100 Subject: [PATCH 137/149] refactor: refs #7127 modified checkAccessAcl instead of using VnRole --- modules/claim/back/models/claim-beginning.js | 38 ++++++++++++++------ 1 file changed, 28 insertions(+), 10 deletions(-) diff --git a/modules/claim/back/models/claim-beginning.js b/modules/claim/back/models/claim-beginning.js index 40d66c33ea..41c064c751 100644 --- a/modules/claim/back/models/claim-beginning.js +++ b/modules/claim/back/models/claim-beginning.js @@ -14,33 +14,51 @@ module.exports = Self => { const options = ctx.options; const models = Self.app.models; const saleFk = ctx?.currentInstance?.saleFk || ctx?.instance?.saleFk; - const loopBackContext = LoopBackContext.getCurrentContext(); - const accessToken = loopBackContext.active.accessToken; - const user = await models.VnUser.findById(accessToken.userId); - const role = await models.VnRole.findById(user.roleFk); + const claimFk = ctx?.instance?.claimFk || ctx?.currentInstance?.claimFk; + const myOptions = {}; + const accessToken = ctx?.options?.accessToken || LoopBackContext.getCurrentContext().active.accessToken; + const ctxToken = {req: {accessToken}}; + + if (typeof options == 'object') + Object.assign(myOptions, options); + const sale = await models.Sale.findById(saleFk, {fields: ['ticketFk', 'quantity']}, options); - if (role.name !== 'salesPerson' && role.name !== 'claimManager') + const canCreateClaimAfterDeadline = models.ACL.checkAccessAcl( + ctxToken, + 'Claim', + 'createAfterDeadline', + myOptions + ); + + const canUpdateClaim = models.ACL.checkAccessAcl( + ctxToken, + 'Claim', + 'updateClaim', + myOptions + ); + + if (!canUpdateClaim && !canCreateClaimAfterDeadline) throw new UserError(`You don't have permission to modify this claim`); - if (role.name === 'salesPerson') { + if (canUpdateClaim) { const query = ` SELECT daysToClaim FROM vn.claimConfig`; const res = await Self.rawSql(query); const daysToClaim = res[0]?.daysToClaim; - const claim = await models.Claim.findById(ctx?.currentInstance?.claimFk, {fields: ['created']}, options); + const claim = await models.Claim.findById(claimFk, {fields: ['created']}, options); const claimDate = moment.utc(claim.created); const currentDate = moment.utc(); const daysSinceSale = currentDate.diff(claimDate, 'days'); - if (daysSinceSale > daysToClaim) + if (daysSinceSale > daysToClaim && !canCreateClaimAfterDeadline) throw new UserError(`You can't modify this claim because the deadline has already passed`); } if (ctx.isNewInstance) { - const claim = await models.Claim.findById(ctx.instance.claimFk, {fields: ['ticketFk']}, options); + const claim = await models.Claim.findById(claimFk, {fields: ['ticketFk']}, options); if (sale.ticketFk != claim.ticketFk) throw new UserError(`Cannot create a new claimBeginning from a different ticket`); } @@ -65,7 +83,7 @@ module.exports = Self => { if (ctx.options && ctx.options.transaction) myOptions.transaction = ctx.options.transaction; - const claimBeginning = ctx.instance ?? await Self.findById(ctx.where.id); + const claimBeginning = ctx.instance ?? await Self.findById(ctx?.where?.id); const filter = { where: {id: claimBeginning.claimFk}, From da36016f5b0ba384eb95589e69b82d908f880137 Mon Sep 17 00:00:00 2001 From: alexm Date: Tue, 4 Feb 2025 14:43:31 +0100 Subject: [PATCH 138/149] build: init version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 72f8e2d1ba..7f2025552a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "salix-back", - "version": "25.06.0", + "version": "25.08.0", "author": "Verdnatura Levante SL", "description": "Salix backend", "license": "GPL-3.0", From f216166806fd32da6059bad7038e2ab3e4c0d925 Mon Sep 17 00:00:00 2001 From: alexm Date: Wed, 5 Feb 2025 10:16:14 +0100 Subject: [PATCH 139/149] fix: refs #7943 better "relation": "business", --- modules/worker/back/models/worker.json | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/modules/worker/back/models/worker.json b/modules/worker/back/models/worker.json index 346c70d567..4ecce9ef26 100644 --- a/modules/worker/back/models/worker.json +++ b/modules/worker/back/models/worker.json @@ -272,7 +272,8 @@ "relation": "department", "scope": { "fields": [ - "id" + "id", + "name" ] } } @@ -289,14 +290,23 @@ "departmentFk", "workerBusinessProfessionalCategoryFk" ], - "include": [ + "include":[ + { + "relation": "department", + "scope": { + "fields": ["id", "name"] + } + }, { "relation": "reasonEnd", "scope": { - "fields": [ - "id", - "reason" - ] + "fields": ["id", "reason"] + } + }, + { + "relation": "workerBusinessProfessionalCategory", + "scope": { + "fields": ["id", "description"] } } ] From e89c12f75334896f9e721851613e9f03051335d6 Mon Sep 17 00:00:00 2001 From: alexm Date: Wed, 5 Feb 2025 10:52:20 +0100 Subject: [PATCH 140/149] fix: refs #7943 better "relation": "business", --- modules/worker/back/models/worker.json | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/modules/worker/back/models/worker.json b/modules/worker/back/models/worker.json index 346c70d567..4ecce9ef26 100644 --- a/modules/worker/back/models/worker.json +++ b/modules/worker/back/models/worker.json @@ -272,7 +272,8 @@ "relation": "department", "scope": { "fields": [ - "id" + "id", + "name" ] } } @@ -289,14 +290,23 @@ "departmentFk", "workerBusinessProfessionalCategoryFk" ], - "include": [ + "include":[ + { + "relation": "department", + "scope": { + "fields": ["id", "name"] + } + }, { "relation": "reasonEnd", "scope": { - "fields": [ - "id", - "reason" - ] + "fields": ["id", "reason"] + } + }, + { + "relation": "workerBusinessProfessionalCategory", + "scope": { + "fields": ["id", "description"] } } ] From 37b735b98869c9ce3cd80cf8814be8c271aeb5e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Andr=C3=A9s?= Date: Wed, 5 Feb 2025 17:21:36 +0100 Subject: [PATCH 141/149] feat: refs #8535 sistema de warnings --- .../vn/triggers/mandate_afterDelete.sql | 12 ++++++++++ .../vn/triggers/mandate_beforeInsert.sql | 10 ++++---- .../vn/triggers/mandate_beforeUpdate.sql | 8 +++++++ .../11432-yellowRoebelini/00-firstScript.sql | 23 +++++++++++++++++++ .../client/back/locale/client-sample/es.yml | 2 +- modules/client/back/locale/mandate/en.yml | 10 ++++++++ modules/client/back/locale/mandate/es.yml | 10 ++++++++ modules/client/back/models/mandate.json | 5 +++- 8 files changed, 74 insertions(+), 6 deletions(-) create mode 100644 db/routines/vn/triggers/mandate_afterDelete.sql create mode 100644 db/routines/vn/triggers/mandate_beforeUpdate.sql create mode 100644 db/versions/11432-yellowRoebelini/00-firstScript.sql create mode 100644 modules/client/back/locale/mandate/en.yml create mode 100644 modules/client/back/locale/mandate/es.yml diff --git a/db/routines/vn/triggers/mandate_afterDelete.sql b/db/routines/vn/triggers/mandate_afterDelete.sql new file mode 100644 index 0000000000..6ef27bb108 --- /dev/null +++ b/db/routines/vn/triggers/mandate_afterDelete.sql @@ -0,0 +1,12 @@ +DELIMITER $$ +CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `vn`.`mandate_afterDelete` + AFTER DELETE ON `mandate` + FOR EACH ROW +BEGIN + INSERT INTO mandateLog + SET `action` = 'delete', + `changedModel` = 'mandate', + `changedModelId` = OLD.id, + `userFk` = account.myUser_getId(); +END$$ +DELIMITER ; diff --git a/db/routines/vn/triggers/mandate_beforeInsert.sql b/db/routines/vn/triggers/mandate_beforeInsert.sql index bfc36cc31f..6fe26604aa 100644 --- a/db/routines/vn/triggers/mandate_beforeInsert.sql +++ b/db/routines/vn/triggers/mandate_beforeInsert.sql @@ -4,9 +4,11 @@ CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `vn`.`mandate_beforeInsert` FOR EACH ROW BEGIN IF (NEW.code IS NULL) THEN - SET NEW.code=CONCAT(NEW.clientFk,'-',(SELECT AUTO_INCREMENT - FROM information_schema.TABLES - WHERE TABLE_SCHEMA='vn' and TABLE_NAME='mandate')); - END IF; + SET NEW.code=CONCAT(NEW.clientFk,'-',(SELECT AUTO_INCREMENT + FROM information_schema.TABLES + WHERE TABLE_SCHEMA='vn' and TABLE_NAME='mandate')); + END IF; + + SET NEW.editorFk = account.myUser_getId(); END$$ DELIMITER ; diff --git a/db/routines/vn/triggers/mandate_beforeUpdate.sql b/db/routines/vn/triggers/mandate_beforeUpdate.sql new file mode 100644 index 0000000000..0932fda393 --- /dev/null +++ b/db/routines/vn/triggers/mandate_beforeUpdate.sql @@ -0,0 +1,8 @@ +DELIMITER $$ +CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `vn`.`mandate_beforeUpdate` + BEFORE INSERT ON `mandate` + FOR EACH ROW +BEGIN + SET NEW.editorFk = account.myUser_getId(); +END$$ +DELIMITER ; diff --git a/db/versions/11432-yellowRoebelini/00-firstScript.sql b/db/versions/11432-yellowRoebelini/00-firstScript.sql new file mode 100644 index 0000000000..15652d3375 --- /dev/null +++ b/db/versions/11432-yellowRoebelini/00-firstScript.sql @@ -0,0 +1,23 @@ +CREATE OR REPLACE TABLE vn.mandateLog ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `originFk` int(11) DEFAULT NULL, + `userFk` int(10) unsigned DEFAULT NULL, + `action` set('insert','update','delete','select') NOT NULL, + `creationDate` timestamp NULL DEFAULT current_timestamp(), + `description` text CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL, + `changedModel` enum('client') NOT NULL DEFAULT 'client', + `oldInstance` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`oldInstance`)), + `newInstance` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`newInstance`)), + `changedModelId` int(11) NOT NULL, + `changedModelValue` varchar(45) DEFAULT NULL, + `summaryId` varchar(30) DEFAULT NULL, + `reason` varchar(255) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `logMandate_userFk` (`userFk`), + KEY `mandateLog_changedModel` (`changedModel`,`changedModelId`,`creationDate`), + KEY `mandateLog_originFk` (`originFk`,`creationDate`), + KEY `mandateLog_creationDate_IDX` (`creationDate` DESC) USING BTREE, + CONSTRAINT `mandateUserFk` FOREIGN KEY (`userFk`) REFERENCES `account`.`user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; + +ALTER TABLE vn.mandate ADD editorFk INT UNSIGNED DEFAULT NULL NULL; diff --git a/modules/client/back/locale/client-sample/es.yml b/modules/client/back/locale/client-sample/es.yml index 5293adaa8b..5f400c8687 100644 --- a/modules/client/back/locale/client-sample/es.yml +++ b/modules/client/back/locale/client-sample/es.yml @@ -1,4 +1,4 @@ -name: muestra +name: plantilla columns: id: id created: creado diff --git a/modules/client/back/locale/mandate/en.yml b/modules/client/back/locale/mandate/en.yml new file mode 100644 index 0000000000..6a43ebb5e1 --- /dev/null +++ b/modules/client/back/locale/mandate/en.yml @@ -0,0 +1,10 @@ +name: mandate +columns: + id: id + clientFk: client + companyFk: company + code: code + created: created + finished: finished + mandateTypeFk: mandate type + editorFk: editor diff --git a/modules/client/back/locale/mandate/es.yml b/modules/client/back/locale/mandate/es.yml new file mode 100644 index 0000000000..efe6465dc2 --- /dev/null +++ b/modules/client/back/locale/mandate/es.yml @@ -0,0 +1,10 @@ +name: mandate +columns: + id: id + clientFk: cliente + companyFk: empresa + code: código + created: creado + finished: finalizado + mandateTypeFk: tipo de mandato + editorFk: editor diff --git a/modules/client/back/models/mandate.json b/modules/client/back/models/mandate.json index 914b23ce27..89a18fd7e2 100644 --- a/modules/client/back/models/mandate.json +++ b/modules/client/back/models/mandate.json @@ -1,6 +1,9 @@ { "name": "Mandate", "base": "VnModel", + "mixins": { + "Loggable": true + }, "options": { "mysql": { "table": "mandate" @@ -39,4 +42,4 @@ "foreignKey": "mandateTypeFk" } } - } \ No newline at end of file + } From 8df36f296a6a71feff001db66efe4060d41402c3 Mon Sep 17 00:00:00 2001 From: Jbreso Date: Thu, 6 Feb 2025 09:11:48 +0100 Subject: [PATCH 142/149] feat: refs #269518 isFragile item and itemType --- db/routines/vn/procedures/ticket_getWarnings.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/db/routines/vn/procedures/ticket_getWarnings.sql b/db/routines/vn/procedures/ticket_getWarnings.sql index d817a92bbb..5f675e7f27 100644 --- a/db/routines/vn/procedures/ticket_getWarnings.sql +++ b/db/routines/vn/procedures/ticket_getWarnings.sql @@ -25,7 +25,7 @@ BEGIN LEFT JOIN agencyMode am ON am.id = tt.agencyModeFk LEFT JOIN deliveryMethod dm ON dm.id = am.deliveryMethodFk WHERE dm.code IN ('AGENCY') - AND it.isFragile; + AND (it.isFragile OR i.isFragile); CREATE OR REPLACE TEMPORARY TABLE tmp.ticket_warnings (PRIMARY KEY (ticketFk)) From 9b2c0f1c487c957febd5fbcb9990f265c08d7a23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Andr=C3=A9s?= Date: Thu, 6 Feb 2025 11:46:39 +0100 Subject: [PATCH 143/149] feat: refs #8535 log table mandate --- db/routines/vn/triggers/mandate_beforeInsert.sql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/db/routines/vn/triggers/mandate_beforeInsert.sql b/db/routines/vn/triggers/mandate_beforeInsert.sql index 6fe26604aa..090133eef1 100644 --- a/db/routines/vn/triggers/mandate_beforeInsert.sql +++ b/db/routines/vn/triggers/mandate_beforeInsert.sql @@ -3,12 +3,12 @@ CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `vn`.`mandate_beforeInsert` BEFORE INSERT ON `mandate` FOR EACH ROW BEGIN + SET NEW.editorFk = account.myUser_getId(); + IF (NEW.code IS NULL) THEN SET NEW.code=CONCAT(NEW.clientFk,'-',(SELECT AUTO_INCREMENT FROM information_schema.TABLES WHERE TABLE_SCHEMA='vn' and TABLE_NAME='mandate')); END IF; - - SET NEW.editorFk = account.myUser_getId(); END$$ DELIMITER ; From 110a5212c03748e6fcee086cf72a9093b96a7de3 Mon Sep 17 00:00:00 2001 From: guillermo Date: Thu, 6 Feb 2025 12:55:01 +0100 Subject: [PATCH 144/149] fix: refs #8535 deploy --- back/Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/back/Dockerfile b/back/Dockerfile index 0f75f6949f..b2c3298966 100644 --- a/back/Dockerfile +++ b/back/Dockerfile @@ -13,6 +13,7 @@ RUN apt-get update \ graphicsmagick \ && curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \ && apt-get install -y --no-install-recommends nodejs \ + && npm install -g corepack@0.31.0 \ && corepack enable pnpm # Puppeteer From beed658f618439e4612a5cd3fe31bc7925fc2d6c Mon Sep 17 00:00:00 2001 From: guillermo Date: Thu, 6 Feb 2025 13:21:32 +0100 Subject: [PATCH 145/149] fix: refs #8535 deploy --- back/Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/back/Dockerfile b/back/Dockerfile index 0f75f6949f..b2c3298966 100644 --- a/back/Dockerfile +++ b/back/Dockerfile @@ -13,6 +13,7 @@ RUN apt-get update \ graphicsmagick \ && curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \ && apt-get install -y --no-install-recommends nodejs \ + && npm install -g corepack@0.31.0 \ && corepack enable pnpm # Puppeteer From f12a690bef081c28ee224e30da4143b6d4a42de9 Mon Sep 17 00:00:00 2001 From: ivanm Date: Thu, 6 Feb 2025 13:28:44 +0100 Subject: [PATCH 146/149] feat: refs #8487 delete appointment from travel view --- db/routines/vn2008/views/travel.sql | 1 - 1 file changed, 1 deletion(-) diff --git a/db/routines/vn2008/views/travel.sql b/db/routines/vn2008/views/travel.sql index 38dfd40eaf..5dc993d330 100644 --- a/db/routines/vn2008/views/travel.sql +++ b/db/routines/vn2008/views/travel.sql @@ -16,7 +16,6 @@ AS SELECT `t`.`id` AS `id`, `t`.`kg` AS `kg`, `t`.`cargoSupplierFk` AS `cargoSupplierFk`, `t`.`totalEntries` AS `totalEntries`, - `t`.`appointment` AS `appointment`, `t`.`awbFk` AS `awbFk`, `t`.`isRaid` AS `isRaid`, `t`.`daysInForward` AS `daysInForward` From ab0667f85c804eb3c4797756c0cb62dac946a6ac Mon Sep 17 00:00:00 2001 From: Javier Segarra Date: Thu, 6 Feb 2025 12:31:46 +0000 Subject: [PATCH 147/149] feat: retrive requested fields --- .../vn/procedures/ticket_canbePostponed.sql | 28 ++++++++++++------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/db/routines/vn/procedures/ticket_canbePostponed.sql b/db/routines/vn/procedures/ticket_canbePostponed.sql index a21e171cfa..f8457adf1d 100644 --- a/db/routines/vn/procedures/ticket_canbePostponed.sql +++ b/db/routines/vn/procedures/ticket_canbePostponed.sql @@ -30,11 +30,16 @@ BEGIN st.code stateCode, sub2.code futureStateCode, st.classColor, - sub2.classColor futureClassColor + sub2.classColor futureClassColor, + am.id agencyFk, + am.name agency, + sub2.agencyModeFk futureAgencyFk, + sub2.agencyMode futureAgency FROM vn.saleVolume sv JOIN vn.sale s ON s.id = sv.saleFk JOIN vn.item i ON i.id = s.itemFk JOIN vn.ticket t ON t.id = sv.ticketFk + JOIN vn.agencyMode am ON am.id = t.agencyModeFk JOIN vn.address a ON a.id = t.addressFk JOIN vn.province p ON p.id = a.provinceFk JOIN vn.country c ON c.id = p.countryFk @@ -54,16 +59,19 @@ BEGIN st.name state, st.code, st.classColor, + am.id agencyModeFk, + am.name agencyMode, GROUP_CONCAT(DISTINCT i.itemPackingTypeFk ORDER BY i.itemPackingTypeFk) iptd - FROM vn.ticket t - JOIN vn.ticketState ts ON ts.ticketFk = t.id - JOIN vn.state st ON st.id = ts.stateFk - JOIN vn.sale s ON s.ticketFk = t.id - JOIN vn.item i ON i.id = s.itemFk - WHERE t.shipped BETWEEN vFutureDated - AND util.dayend(vFutureDated) - AND t.warehouseFk = vWarehouseFk - GROUP BY t.id + FROM vn.ticket t + JOIN vn.agencyMode am ON am.id = t.agencyModeFk + JOIN vn.ticketState ts ON ts.ticketFk = t.id + JOIN vn.state st ON st.id = ts.stateFk + JOIN vn.sale s ON s.ticketFk = t.id + JOIN vn.item i ON i.id = s.itemFk + WHERE t.shipped BETWEEN vFutureDated + AND util.dayend(vFutureDated) + AND t.warehouseFk = vWarehouseFk + GROUP BY t.id ) sub GROUP BY sub.addressFk ) sub2 ON sub2.addressFk = t.addressFk AND t.id != sub2.id From 2e8e2329ec57a67c46c7fb7305c785d8e3615c6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Andr=C3=A9s?= Date: Thu, 6 Feb 2025 13:44:22 +0100 Subject: [PATCH 148/149] fix: refs #8535 deploy --- db/versions/11433-chocolateIvy/00-firstScript.sql | 1 + 1 file changed, 1 insertion(+) create mode 100644 db/versions/11433-chocolateIvy/00-firstScript.sql diff --git a/db/versions/11433-chocolateIvy/00-firstScript.sql b/db/versions/11433-chocolateIvy/00-firstScript.sql new file mode 100644 index 0000000000..25e8b376c3 --- /dev/null +++ b/db/versions/11433-chocolateIvy/00-firstScript.sql @@ -0,0 +1 @@ +ALTER TABLE vn.recovery DROP FOREIGN KEY cliente333; From 21d9369250bec18b78a32d197a9c40d8dd0b1e31 Mon Sep 17 00:00:00 2001 From: guillermo Date: Fri, 7 Feb 2025 11:04:10 +0100 Subject: [PATCH 149/149] fix: refs #8172 Version fix --- db/versions/11389-yellowChico/00-firstScript.sql | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/db/versions/11389-yellowChico/00-firstScript.sql b/db/versions/11389-yellowChico/00-firstScript.sql index e8fd57e287..feaca12788 100644 --- a/db/versions/11389-yellowChico/00-firstScript.sql +++ b/db/versions/11389-yellowChico/00-firstScript.sql @@ -10,14 +10,12 @@ ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; -UPDATE vn.parkingCoordinates pc - JOIN vn.parking p ON p.id = pc.parkingFk - SET pc.x = IFNULL(p.`column`, 0), - pc.y = IFNULL(p.`row`, 0), - pc.z = IFNULL(p.`floor`, 0) - WHERE p.`column` IS NOT NULL - OR p.`row` IS NOT NULL - OR p.`floor` IS NOT NULL; +INSERT INTO vn.parkingCoordinates (parkingFk, x, y, z) + SELECT id, `column`, `row`, `floor` + FROM vn.parking + WHERE `column` IS NOT NULL + OR `row` IS NOT NULL + OR `floor` IS NOT NULL; ALTER TABLE vn.parking DROP COLUMN `column`,