diff --git a/db/changes/240201/00-ticketSmsToClientSms.sql b/db/changes/240201/00-ticketSmsToClientSms.sql
new file mode 100644
index 000000000..cd3cf7dd3
--- /dev/null
+++ b/db/changes/240201/00-ticketSmsToClientSms.sql
@@ -0,0 +1,9 @@
+ALTER TABLE `vn`.`clientSms` ADD `ticketFk` int(11) NULL;
+ALTER TABLE `vn`.`clientSms` ADD CONSTRAINT `clientSms_FK_2` FOREIGN KEY (`ticketFk`) REFERENCES `vn`.`ticket`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
+
+INSERT INTO`vn`.`clientSms` (`clientFk`, `smsFk`, `ticketFk`)
+ SELECT `t`.`clientFk`, `s`.`smsFk`, `s`.`ticketFk`
+ FROM `vn`.`clientSms` `s`
+ JOIN `vn`.`ticket` `t` ON `t`.`id` = `s`.`ticketFk`;
+
+RENAME TABLE `vn`.`ticketSms` TO `vn`.`ticketSms__`;
diff --git a/db/dump/fixtures.sql b/db/dump/fixtures.sql
index 8ad9b511a..8fd1961bb 100644
--- a/db/dump/fixtures.sql
+++ b/db/dump/fixtures.sql
@@ -3021,3 +3021,17 @@ INSERT INTO `vn`.`docuwareTablet` (`tablet`,`description`)
VALUES
('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());
+
+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);
\ No newline at end of file
diff --git a/modules/client/back/model-config.json b/modules/client/back/model-config.json
index a21407732..fc1254dd8 100644
--- a/modules/client/back/model-config.json
+++ b/modules/client/back/model-config.json
@@ -113,9 +113,6 @@
"SageTransactionType": {
"dataSource": "vn"
},
- "TicketSms": {
- "dataSource": "vn"
- },
"TpvError": {
"dataSource": "vn"
},
diff --git a/modules/client/back/models/client-sms.json b/modules/client/back/models/client-sms.json
index b2244ebbb..df1b58737 100644
--- a/modules/client/back/models/client-sms.json
+++ b/modules/client/back/models/client-sms.json
@@ -21,6 +21,11 @@
"type": "belongsTo",
"model": "Sms",
"foreignKey": "smsFk"
+ },
+ "ticket": {
+ "type": "belongsTo",
+ "model": "Ticket",
+ "foreignKey": "ticketFk"
}
}
}
diff --git a/modules/client/back/models/ticket-sms.json b/modules/client/back/models/ticket-sms.json
deleted file mode 100644
index 03f592f51..000000000
--- a/modules/client/back/models/ticket-sms.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "name": "TicketSms",
- "base": "VnModel",
- "options": {
- "mysql": {
- "table": "ticketSms"
- }
- },
- "properties": {
- "smsFk": {
- "type": "number",
- "id": true,
- "description": "Identifier"
- }
- },
- "relations": {
- "ticket": {
- "type": "belongsTo",
- "model": "Ticket",
- "foreignKey": "ticketFk"
- },
- "sms": {
- "type": "belongsTo",
- "model": "Sms",
- "foreignKey": "smsFk"
- }
- }
-}
diff --git a/modules/client/front/sms/index.html b/modules/client/front/sms/index.html
index e2bc0785e..7fb3b870e 100644
--- a/modules/client/front/sms/index.html
+++ b/modules/client/front/sms/index.html
@@ -1,40 +1,2 @@
-
-
-
-
-
-
-
- Sender
- Destination
- Message
- Status
- Created
-
-
-
-
-
-
- {{::clientSms.sms.sender.name}}
-
-
- {{::clientSms.sms.destination}}
- {{::clientSms.sms.message}}
- {{::clientSms.sms.status}}
- {{::clientSms.sms.created | date:'dd/MM/yyyy HH:mm'}}
-
-
-
-
-
-
-
+
+
diff --git a/modules/client/front/sms/index.js b/modules/client/front/sms/index.js
index 6ad64282e..8fa130248 100644
--- a/modules/client/front/sms/index.js
+++ b/modules/client/front/sms/index.js
@@ -1,32 +1,14 @@
import ngModule from '../module';
import Section from 'salix/components/section';
-export default class Controller extends Section {
+class Controller extends Section {
constructor($element, $) {
super($element, $);
+ }
- this.filter = {
- fields: ['id', 'smsFk'],
- include: {
- relation: 'sms',
- scope: {
- fields: [
- 'senderFk',
- 'sender',
- 'destination',
- 'message',
- 'statusCode',
- 'status',
- 'created'],
- include: {
- relation: 'sender',
- scope: {
- fields: ['name']
- }
- }
- }
- }
- };
+ async $onInit() {
+ this.$state.go('client.card.summary', {id: this.$params.id});
+ window.location.href = await this.vnApp.getUrl(`Customer/${this.$params.id}/sms`);
}
}
diff --git a/modules/ticket/back/methods/ticket/sendSms.js b/modules/ticket/back/methods/ticket/sendSms.js
index ffc95c6b4..36e52fe3d 100644
--- a/modules/ticket/back/methods/ticket/sendSms.js
+++ b/modules/ticket/back/methods/ticket/sendSms.js
@@ -33,7 +33,9 @@ module.exports = Self => {
Self.sendSms = async(ctx, id, destination, message) => {
const models = Self.app.models;
const sms = await models.Sms.send(ctx, destination, message);
- await models.TicketSms.create({
+ const {clientFk} = await models.Ticket.findById(id);
+ await models.ClientSms.create({
+ clientFk,
ticketFk: id,
smsFk: sms.id
});
diff --git a/modules/ticket/back/methods/ticket/specs/sendSms.spec.js b/modules/ticket/back/methods/ticket/specs/sendSms.spec.js
index 3f93198d1..afc1ada54 100644
--- a/modules/ticket/back/methods/ticket/specs/sendSms.spec.js
+++ b/modules/ticket/back/methods/ticket/specs/sendSms.spec.js
@@ -14,12 +14,12 @@ describe('ticket sendSms()', () => {
await models.Ticket.sendSms(ctx, id, destination, message, options);
- const filter = {
- ticketFk: id
- };
- const ticketSms = await models.TicketSms.findOne(filter, options);
+ const clientSms = await models.ClientSms.findOne(
+ {where: {ticketFk: id}},
+ options
+ );
- expect(ticketSms.ticketFk).toEqual(id);
+ expect(clientSms.ticketFk).toEqual(id);
await tx.rollback();
} catch (e) {