Merge branch 'dev' into 6925-fix_translations
gitea/salix/pipeline/pr-dev This commit looks good Details

This commit is contained in:
Alex Moreno 2024-03-11 12:49:34 +00:00
commit 35ef9b53c2
15 changed files with 141 additions and 23 deletions

View File

@ -3729,4 +3729,7 @@ UPDATE vn.buy SET itemOriginalFk = 1 WHERE id = 1;
UPDATE vn.saleTracking SET stateFk = 26 WHERE id = 5; UPDATE vn.saleTracking SET stateFk = 26 WHERE id = 5;
INSERT INTO vn.report (name) VALUES ('LabelCollection'); INSERT INTO vn.report (name) VALUES ('LabelCollection');
INSERT INTO vn.parkingLog(originFk, userFk, `action`, creationDate, description, changedModel,oldInstance, newInstance, changedModelId, changedModelValue)
VALUES(1, 18, 'update', util.VN_CURDATE(), NULL, 'SaleGroup', '{"parkingFk":null}', '{"parkingFk":1}', 1, NULL);

View File

@ -188,11 +188,13 @@ BEGIN
SELECT MAX(tl.id)ids SELECT MAX(tl.id)ids
FROM ticket t FROM ticket t
JOIN ticketLog tl ON tl.originFk = t.id JOIN ticketLog tl ON tl.originFk = t.id
LEFT JOIN ticketWeekly tw ON tw.ticketFk = t.id
WHERE t.shipped BETWEEN '2000-01-01' AND '2000-12-31' WHERE t.shipped BETWEEN '2000-01-01' AND '2000-12-31'
AND t.isDeleted AND t.isDeleted
AND tw.ticketFk IS NULL
GROUP BY t.id GROUP BY t.id
) sub ON sub.ids = tl.id ) sub ON sub.ids = tl.id
WHERE tl.creationDate <= util.VN_CURDATE() - INTERVAL 60 DAY; WHERE tl.creationDate <= v2Months;
DELETE t DELETE t
FROM ticket t FROM ticket t
JOIN tTicketDelete tmp ON tmp.ticketFk = t.id; JOIN tTicketDelete tmp ON tmp.ticketFk = t.id;

View File

@ -19,17 +19,17 @@ BEGIN
DECLARE vTypeFk INT; DECLARE vTypeFk INT;
DECLARE vPriority INT DEFAULT 1; DECLARE vPriority INT DEFAULT 1;
DECLARE vTag1 VARCHAR(25) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci'; DECLARE vTag1 VARCHAR(20) COLLATE 'utf8_unicode_ci';
DECLARE vTag5 VARCHAR(25) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci'; DECLARE vTag5 VARCHAR(20) COLLATE 'utf8_unicode_ci';
DECLARE vTag6 VARCHAR(25) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci'; DECLARE vTag6 VARCHAR(20) COLLATE 'utf8_unicode_ci';
DECLARE vTag7 VARCHAR(25) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci'; DECLARE vTag7 VARCHAR(20) COLLATE 'utf8_unicode_ci';
DECLARE vTag8 VARCHAR(25) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci'; DECLARE vTag8 VARCHAR(20) COLLATE 'utf8_unicode_ci';
DECLARE vValue1 VARCHAR(50) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci'; DECLARE vValue1 VARCHAR(50) COLLATE 'utf8_unicode_ci';
DECLARE vValue5 VARCHAR(50) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci'; DECLARE vValue5 VARCHAR(50) COLLATE 'utf8_unicode_ci';
DECLARE vValue6 VARCHAR(50) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci'; DECLARE vValue6 VARCHAR(50) COLLATE 'utf8_unicode_ci';
DECLARE vValue7 VARCHAR(50) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci'; DECLARE vValue7 VARCHAR(50) COLLATE 'utf8_unicode_ci';
DECLARE vValue8 VARCHAR(50) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci'; DECLARE vValue8 VARCHAR(50) COLLATE 'utf8_unicode_ci';
SELECT typeFk, SELECT typeFk,
tag5, tag5,
@ -81,7 +81,8 @@ BEGIN
IF(b.groupingMode = 1, b.grouping, b.packing) minQuantity, IF(b.groupingMode = 1, b.grouping, b.packing) minQuantity,
iss.visible located iss.visible located
FROM item i FROM item i
JOIN cache.available a ON a.item_id = i.id STRAIGHT_JOIN cache.available a ON a.item_id = i.id
AND a.calc_id = vCalcFk
LEFT JOIN itemProposal ip ON ip.mateFk = i.id LEFT JOIN itemProposal ip ON ip.mateFk = i.id
AND ip.itemFk = vSelf AND ip.itemFk = vSelf
LEFT JOIN itemTag it ON it.itemFk = i.id LEFT JOIN itemTag it ON it.itemFk = i.id
@ -92,8 +93,7 @@ BEGIN
LEFT JOIN buy b ON b.id = lb.buy_id LEFT JOIN buy b ON b.id = lb.buy_id
LEFT JOIN itemShelvingStock iss ON iss.itemFk = i.id LEFT JOIN itemShelvingStock iss ON iss.itemFk = i.id
AND iss.warehouseFk = vWarehouseFk AND iss.warehouseFk = vWarehouseFk
WHERE a.calc_id = vCalcFk WHERE a.available > 0
AND a.available > 0
AND IF(vShowType, i.typeFk = vTypeFk, TRUE) AND IF(vShowType, i.typeFk = vTypeFk, TRUE)
AND i.id <> vSelf AND i.id <> vSelf
ORDER BY `counter` DESC, ORDER BY `counter` DESC,

View File

@ -0,0 +1,12 @@
DELIMITER $$
CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`parking_afterDelete`
AFTER DELETE ON `parking`
FOR EACH ROW
BEGIN
INSERT INTO parkingLog
SET `action` = 'delete',
`changedModel` = 'Parking',
`changedModelId` = OLD.id,
`userFk` = account.myUser_getId();
END$$
DELIMITER ;

View File

@ -3,7 +3,7 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`parking_beforeInsert`
BEFORE INSERT ON `parking` BEFORE INSERT ON `parking`
FOR EACH ROW FOR EACH ROW
BEGIN BEGIN
SET NEW.editorFk = account.myUser_getId();
-- SET new.`code` = CONCAT(new.`column`,' - ',new.`row`) ; -- SET new.`code` = CONCAT(new.`column`,' - ',new.`row`) ;
END$$ END$$

View File

@ -3,7 +3,7 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`parking_beforeUpdate`
BEFORE UPDATE ON `parking` BEFORE UPDATE ON `parking`
FOR EACH ROW FOR EACH ROW
BEGIN BEGIN
SET NEW.editorFk = account.myUser_getId();
-- SET new.`code` = CONCAT(new.`column`,' - ',new.`row`) ; -- SET new.`code` = CONCAT(new.`column`,' - ',new.`row`) ;
END$$ END$$

View File

@ -0,0 +1,60 @@
CREATE OR REPLACE TABLE vn.parkingLog (
`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('Parking','SaleGroup','SaleGroupDetail') NOT NULL DEFAULT 'Parking',
`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,
PRIMARY KEY (`id`),
KEY `logParkinguserFk` (`userFk`),
KEY `parkingLog_changedModel` (`changedModel`,`changedModelId`,`creationDate`),
KEY `parkingLog_originFk` (`originFk`,`creationDate`),
CONSTRAINT `parkingOriginFk` FOREIGN KEY (`originFk`) REFERENCES `parking` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `parkingUserFk` 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.parking DROP COLUMN IF EXISTS editorFk;
ALTER TABLE IF EXISTS vn.parking ADD COLUMN editorFk INT;
ALTER TABLE vn.saleGroupDetail DROP COLUMN IF EXISTS editorFk;
ALTER TABLE IF EXISTS vn.saleGroupDetail ADD COLUMN editorFk INT;
ALTER TABLE vn.ticketLog
MODIFY COLUMN changedModel ENUM(
'Ticket',
'Sale',
'TicketWeekly',
'TicketTracking',
'TicketService',
'TicketRequest',
'TicketRefund',
'TicketPackaging',
'TicketObservation',
'TicketDms',
'Expedition',
'Sms'
) NOT NULL DEFAULT 'Ticket';

View File

@ -0,0 +1,2 @@
INSERT INTO salix.ACL (model, property, accessType, permission, principalType, principalId)
VALUES ('ParkingLog', '*', 'READ', 'ALLOW', 'ROLE', 'employee');

View File

@ -0,0 +1,5 @@
{
"ParkingLog": {
"dataSource": "vn"
}
}

View File

@ -0,0 +1,9 @@
{
"name": "ParkingLog",
"base": "Log",
"options": {
"mysql": {
"table": "parkingLog"
}
}
}

View File

@ -0,0 +1,9 @@
name: parking
columns:
id: id
column: column
row: row
sectorFk: sector
code: code
pickingOrder: picking order
editorFk: editor

View File

@ -0,0 +1,10 @@
name: parking
columns:
id: id
column: columna
row: fila
sectorFk: sector
code: código
pickingOrder: orden de recogida
editorFk: editor

View File

@ -20,9 +20,6 @@
"type": "string", "type": "string",
"required": true "required": true
}, },
"sectorFk": {
"type": "number"
},
"code": { "code": {
"type": "string" "type": "string"
}, },
@ -35,6 +32,11 @@
"type": "hasMany", "type": "hasMany",
"model": "saleGroup", "model": "saleGroup",
"foreignKey": "parkingFk" "foreignKey": "parkingFk"
},
"sector": {
"type": "belongsTo",
"model": "Sector",
"foreignKey": "sectorFk"
} }
} }
} }

View File

@ -1,3 +1,5 @@
const UserError = require('vn-loopback/util/user-error');
module.exports = Self => { module.exports = Self => {
Self.remoteMethodCtx('newSupplier', { Self.remoteMethodCtx('newSupplier', {
description: 'Creates a new supplier and returns it', description: 'Creates a new supplier and returns it',
@ -19,12 +21,13 @@ module.exports = Self => {
Self.newSupplier = async(ctx, options) => { Self.newSupplier = async(ctx, options) => {
const models = Self.app.models; const models = Self.app.models;
const args = ctx.args; const args = ctx.args;
const myOptions = {}; const myOptions = {validate: false};
if (typeof options == 'object') if (typeof options == 'object')
Object.assign(myOptions, options); Object.assign(myOptions, options);
delete args.ctx; delete args.ctx;
if (!args.name) throw new UserError('The social name cannot be empty');
const data = {...args, ...{nickname: args.name}}; const data = {...args, ...{nickname: args.name}};
const supplier = await models.Supplier.create(data, myOptions); const supplier = await models.Supplier.create(data, myOptions);

View File

@ -4,4 +4,5 @@ Go to client: Ir al cliente
Verified supplier: Proveedor verificado Verified supplier: Proveedor verificado
Unverified supplier: Proveedor no verificado Unverified supplier: Proveedor no verificado
Inactive supplier: Proveedor inactivo Inactive supplier: Proveedor inactivo
Create invoiceIn: Crear factura recibida Create invoiceIn: Crear factura recibida
Supplier name: Razón social