Merge branch 'dev' of https://gitea.verdnatura.es/verdnatura/salix into 4797-worker-notification-selector
This commit is contained in:
commit
52f419d4cf
|
@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file.
|
||||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||||
|
|
||||||
|
## [2348.01] - 2023-11-30
|
||||||
|
|
||||||
|
### Added
|
||||||
|
### Changed
|
||||||
|
### Fixed
|
||||||
|
|
||||||
## [2346.01] - 2023-11-16
|
## [2346.01] - 2023-11-16
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
CREATE SCHEMA IF NOT EXISTS `vn2008`;
|
||||||
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost`
|
CREATE OR REPLACE DEFINER=`root`@`localhost`
|
||||||
SQL SECURITY DEFINER
|
SQL SECURITY DEFINER
|
||||||
VIEW `vn`.`awbVolume`
|
VIEW `vn`.`awbVolume`
|
||||||
|
|
|
@ -2,11 +2,3 @@ UPDATE `salix`.`ACL`
|
||||||
SET `property` = 'state',
|
SET `property` = 'state',
|
||||||
`model` = 'Ticket'
|
`model` = 'Ticket'
|
||||||
WHERE `property` = 'changeState';
|
WHERE `property` = 'changeState';
|
||||||
|
|
||||||
REVOKE INSERT, UPDATE, DELETE ON `vn`.`ticketTracking` FROM 'productionboss'@;
|
|
||||||
REVOKE INSERT, UPDATE, DELETE ON `vn`.`ticketTracking` FROM 'productionAssi'@;
|
|
||||||
REVOKE INSERT, UPDATE, DELETE ON `vn`.`ticketTracking` FROM 'hr'@;
|
|
||||||
REVOKE INSERT, UPDATE, DELETE ON `vn`.`ticketTracking` FROM 'salesPerson'@;
|
|
||||||
REVOKE INSERT, UPDATE, DELETE ON `vn`.`ticketTracking` FROM 'deliveryPerson'@;
|
|
||||||
REVOKE INSERT, UPDATE, DELETE ON `vn`.`ticketTracking` FROM 'employee'@;
|
|
||||||
REVOKE EXECUTE ON `vn`.`ticket_setState` FROM 'employee'@;
|
|
||||||
|
|
|
@ -0,0 +1,98 @@
|
||||||
|
|
||||||
|
-- Place your SQL code here
|
||||||
|
|
||||||
|
ALTER TABLE `vn`.`productionConfig` ADD shortageAddressFk int(11) COMMENT 'Consignatario por defecto para añadir un item de alta';
|
||||||
|
ALTER TABLE `vn`.`productionConfig` ADD CONSTRAINT productionConfig_FK FOREIGN KEY (shortageAddressFk) REFERENCES vn.address(id) ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||||
|
|
||||||
|
ALTER TABLE `vn`.`sale` MODIFY COLUMN originalQuantity double(9,1) DEFAULT NULL NULL COMMENT 'Se utiliza para notificar a través de rocket los cambios de quantity';
|
||||||
|
|
||||||
|
INSERT INTO `salix`.`ACL` ( model, property, accessType, permission, principalType, principalId) VALUES( 'AddressShortage', '*', 'READ', 'ALLOW', 'ROLE', 'production');
|
||||||
|
|
||||||
|
-- vn.addressShortage definition
|
||||||
|
|
||||||
|
CREATE TABLE `vn`.`addressShortage` (
|
||||||
|
`addressFk` int(11) NOT NULL,
|
||||||
|
PRIMARY KEY (`addressFk`),
|
||||||
|
CONSTRAINT `addressShortage_FK` FOREIGN KEY (`addressFk`) REFERENCES `address` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci;
|
||||||
|
|
||||||
|
|
||||||
|
DELIMITER $$
|
||||||
|
|
||||||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`item_setVisibleDiscard`(
|
||||||
|
vItemFk INT,
|
||||||
|
vWarehouseFk INT,
|
||||||
|
vQuantity INT,
|
||||||
|
vAddressFk INT)
|
||||||
|
BEGIN
|
||||||
|
/**
|
||||||
|
* Procedimiento para dar dar de baja/alta un item, si vAddressFk es NULL se entiende que se da de alta y se toma el addressFk de la configuración
|
||||||
|
*
|
||||||
|
* @param vItemFk Identificador del ítem
|
||||||
|
* @param vWarehouseFk id del warehouse
|
||||||
|
* @param vQuantity a dar de alta/baja
|
||||||
|
* @param vAddressFk id address
|
||||||
|
*/
|
||||||
|
DECLARE vTicketFk INT;
|
||||||
|
DECLARE vClientFk INT;
|
||||||
|
DECLARE vDefaultCompanyFk INT;
|
||||||
|
DECLARE vCalc INT;
|
||||||
|
DECLARE vAddressShortage INT;
|
||||||
|
|
||||||
|
SELECT barcodeToItem(vItemFk) INTO vItemFk;
|
||||||
|
|
||||||
|
SELECT DEFAULT(companyFk) INTO vDefaultCompanyFk
|
||||||
|
FROM vn.ticket LIMIT 1;
|
||||||
|
|
||||||
|
IF vAddressFk IS NULL THEN
|
||||||
|
SELECT pc.shortageAddressFk INTO vAddressShortage
|
||||||
|
FROM productionConfig pc ;
|
||||||
|
ELSE
|
||||||
|
SET vAddressShortage = vAddressFk;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
SELECT a.clientFk INTO vClientFk
|
||||||
|
FROM address a
|
||||||
|
WHERE a.id = vAddressFk;
|
||||||
|
|
||||||
|
SELECT t.id INTO vTicketFk
|
||||||
|
FROM ticket t
|
||||||
|
JOIN address a ON a.id = t.addressFk
|
||||||
|
JOIN ticketState ts ON ts.ticketFk = t.id
|
||||||
|
WHERE t.warehouseFk = vWarehouseFk
|
||||||
|
AND a.id = vAddressShortage
|
||||||
|
AND DATE(t.shipped) = util.VN_CURDATE()
|
||||||
|
AND ts.code = 'DELIVERED'
|
||||||
|
LIMIT 1;
|
||||||
|
|
||||||
|
CALL cache.visible_refresh(vCalc, TRUE, vWarehouseFk);
|
||||||
|
|
||||||
|
IF vTicketFk IS NULL THEN
|
||||||
|
CALL ticket_add(
|
||||||
|
vClientFk,
|
||||||
|
util.VN_CURDATE(),
|
||||||
|
vWarehouseFk,
|
||||||
|
vDefaultCompanyFk,
|
||||||
|
vAddressFk,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
util.VN_CURDATE(),
|
||||||
|
account.myUser_getId(),
|
||||||
|
FALSE,
|
||||||
|
vTicketFk);
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
INSERT INTO sale(ticketFk, itemFk, concept, quantity)
|
||||||
|
SELECT vTicketFk,
|
||||||
|
vItemFk,
|
||||||
|
CONCAT(longName,' ', worker_getCode(), ' ', LEFT(CAST(util.VN_NOW() AS TIME),5)),
|
||||||
|
vQuantity
|
||||||
|
FROM item
|
||||||
|
WHERE id = vItemFk;
|
||||||
|
|
||||||
|
UPDATE cache.visible
|
||||||
|
SET visible = visible - vQuantity
|
||||||
|
WHERE calc_id = vCalc
|
||||||
|
AND item_id = vItemFk;
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
|
@ -21,11 +21,11 @@ DELETE FROM `salix`.`ACL`
|
||||||
'getSummary'
|
'getSummary'
|
||||||
);
|
);
|
||||||
|
|
||||||
INSERT INTO `salix`.`ACL` (`model`,`property`,`accessType`,`permission`,`principalType`,`principalid`)
|
INSERT INTO `salix`.`ACL` (`model`,`property`,`accessType`,`permission`,`principalType`,`principalId`)
|
||||||
VALUES ('Claim','filter','READ','ALLOW','ROLE','claimViewer');
|
VALUES ('Claim','filter','READ','ALLOW','ROLE','claimViewer');
|
||||||
INSERT INTO `salix`.`ACL` (`model`,`property`,`accessType`,`permission`,`principalType`,`principalid`)
|
INSERT INTO `salix`.`ACL` (`model`,`property`,`accessType`,`permission`,`principalType`,`principalId`)
|
||||||
VALUES ('Claim','find','READ','ALLOW','ROLE','claimViewer');
|
VALUES ('Claim','find','READ','ALLOW','ROLE','claimViewer');
|
||||||
INSERT INTO `salix`.`ACL` (`model`,`property`,`accessType`,`permission`,`principalType`,`principalid`)
|
INSERT INTO `salix`.`ACL` (`model`,`property`,`accessType`,`permission`,`principalType`,`principalId`)
|
||||||
VALUES ('Claim','findById','READ','ALLOW','ROLE','claimViewer');
|
VALUES ('Claim','findById','READ','ALLOW','ROLE','claimViewer');
|
||||||
INSERT INTO `salix`.`ACL` (`model`,`property`,`accessType`,`permission`,`principalType`,`principalid`)
|
INSERT INTO `salix`.`ACL` (`model`,`property`,`accessType`,`permission`,`principalType`,`principalId`)
|
||||||
VALUES ('Claim','getSummary','READ','ALLOW','ROLE','claimViewer');
|
VALUES ('Claim','getSummary','READ','ALLOW','ROLE','claimViewer');
|
|
@ -0,0 +1,95 @@
|
||||||
|
ALTER TABLE `vn`.`client` MODIFY COLUMN `credit` decimal(10,2) unsigned DEFAULT 0.00 NOT NULL;
|
||||||
|
|
||||||
|
DELETE FROM `salix`.`ACL` WHERE `model` = 'Client' AND `property` = 'create';
|
||||||
|
|
||||||
|
DELIMITER $$
|
||||||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`client_beforeUpdate`
|
||||||
|
BEFORE UPDATE ON `client`
|
||||||
|
FOR EACH ROW
|
||||||
|
BEGIN
|
||||||
|
DECLARE vText VARCHAR(255) DEFAULT NULL;
|
||||||
|
DECLARE vPayMethodFk INT;
|
||||||
|
|
||||||
|
SET NEW.editorFk = account.myUser_getId();
|
||||||
|
|
||||||
|
IF NOT(NEW.credit <=> OLD.credit) THEN
|
||||||
|
INSERT INTO clientCredit
|
||||||
|
SET clientFk = NEW.id,
|
||||||
|
amount = NEW.credit,
|
||||||
|
workerFk = NEW.editorFk;
|
||||||
|
END IF;
|
||||||
|
-- Comprueba que el formato de los teléfonos es válido
|
||||||
|
|
||||||
|
IF !(NEW.phone <=> OLD.phone) AND (NEW.phone <> '') THEN
|
||||||
|
CALL pbx.phone_isValid(NEW.phone);
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
IF !(NEW.mobile <=> OLD.mobile) AND (NEW.mobile <> '')THEN
|
||||||
|
CALL pbx.phone_isValid(NEW.mobile);
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
SELECT id INTO vPayMethodFk
|
||||||
|
FROM vn.payMethod
|
||||||
|
WHERE code = 'bankDraft';
|
||||||
|
|
||||||
|
IF NEW.payMethodFk = vPayMethodFk AND NEW.dueDay = 0 THEN
|
||||||
|
SET NEW.dueDay = 5;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
-- Avisar al comercial si ha llegado la documentación sepa/core
|
||||||
|
|
||||||
|
IF NEW.hasSepaVnl AND !OLD.hasSepaVnl THEN
|
||||||
|
SET vText = 'Sepa de VNL';
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
IF NEW.hasCoreVnl AND !OLD.hasCoreVnl THEN
|
||||||
|
SET vText = 'Core de VNL';
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
IF vText IS NOT NULL
|
||||||
|
THEN
|
||||||
|
INSERT INTO mail(receiver, replyTo, `subject`, body)
|
||||||
|
SELECT
|
||||||
|
CONCAT(IF(ac.id,u.name, 'jgallego'), '@verdnatura.es'),
|
||||||
|
'administracion@verdnatura.es',
|
||||||
|
CONCAT('Cliente ', NEW.id),
|
||||||
|
CONCAT('Recibida la documentación: ', vText)
|
||||||
|
FROM worker w
|
||||||
|
LEFT JOIN account.user u ON w.id = u.id AND u.active
|
||||||
|
LEFT JOIN account.account ac ON ac.id = u.id
|
||||||
|
WHERE w.id = NEW.salesPersonFk;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
IF NEW.salespersonFk IS NULL AND OLD.salespersonFk IS NOT NULL THEN
|
||||||
|
IF (SELECT COUNT(clientFk)
|
||||||
|
FROM clientProtected
|
||||||
|
WHERE clientFk = NEW.id
|
||||||
|
) > 0 THEN
|
||||||
|
CALL util.throw("HAS_CLIENT_PROTECTED");
|
||||||
|
END IF;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
IF !(NEW.salesPersonFk <=> OLD.salesPersonFk) THEN
|
||||||
|
SET NEW.lastSalesPersonFk = IFNULL(NEW.salesPersonFk, OLD.salesPersonFk);
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
IF !(NEW.businessTypeFk <=> OLD.businessTypeFk) AND (NEW.businessTypeFk = 'individual' OR OLD.businessTypeFk = 'individual') THEN
|
||||||
|
SET NEW.isTaxDataChecked = 0;
|
||||||
|
END IF;
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
||||||
|
|
||||||
|
DELIMITER $$
|
||||||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`client_AfterInsert`
|
||||||
|
AFTER INSERT ON `client`
|
||||||
|
FOR EACH ROW
|
||||||
|
BEGIN
|
||||||
|
IF NEW.credit IS NOT NULL AND NEW.credit THEN
|
||||||
|
INSERT INTO clientCredit
|
||||||
|
SET clientFk = NEW.id,
|
||||||
|
workerFk = NEW.editorFk,
|
||||||
|
amount = NEW.credit;
|
||||||
|
END IF;
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
||||||
|
|
|
@ -470,22 +470,22 @@ CREATE TEMPORARY TABLE tmp.address
|
||||||
WHERE `defaultAddressFk` IS NULL;
|
WHERE `defaultAddressFk` IS NULL;
|
||||||
DROP TEMPORARY TABLE tmp.address;
|
DROP TEMPORARY TABLE tmp.address;
|
||||||
|
|
||||||
INSERT INTO `vn`.`clientCredit`(`id`, `clientFk`, `workerFk`, `amount`, `created`)
|
INSERT INTO `vn`.`clientCredit`(`clientFk`, `workerFk`, `amount`, `created`)
|
||||||
VALUES
|
VALUES
|
||||||
(1 , 1101, 5, 300, DATE_ADD(util.VN_CURDATE(), INTERVAL -11 MONTH)),
|
(1101, 5, 300, DATE_ADD(util.VN_CURDATE(), INTERVAL -11 MONTH)),
|
||||||
(2 , 1101, 5, 900, DATE_ADD(util.VN_CURDATE(), INTERVAL -10 MONTH)),
|
(1101, 5, 900, DATE_ADD(util.VN_CURDATE(), INTERVAL -10 MONTH)),
|
||||||
(3 , 1101, 5, 800, DATE_ADD(util.VN_CURDATE(), INTERVAL -9 MONTH)),
|
(1101, 5, 800, DATE_ADD(util.VN_CURDATE(), INTERVAL -9 MONTH)),
|
||||||
(4 , 1101, 5, 700, DATE_ADD(util.VN_CURDATE(), INTERVAL -8 MONTH)),
|
(1101, 5, 700, DATE_ADD(util.VN_CURDATE(), INTERVAL -8 MONTH)),
|
||||||
(5 , 1101, 5, 600, DATE_ADD(util.VN_CURDATE(), INTERVAL -7 MONTH)),
|
(1101, 5, 600, DATE_ADD(util.VN_CURDATE(), INTERVAL -7 MONTH)),
|
||||||
(6 , 1101, 5, 500, DATE_ADD(util.VN_CURDATE(), INTERVAL -6 MONTH)),
|
(1101, 5, 500, DATE_ADD(util.VN_CURDATE(), INTERVAL -6 MONTH)),
|
||||||
(7 , 1101, 5, 400, DATE_ADD(util.VN_CURDATE(), INTERVAL -5 MONTH)),
|
(1101, 5, 400, DATE_ADD(util.VN_CURDATE(), INTERVAL -5 MONTH)),
|
||||||
(8 , 1101, 9, 300, DATE_ADD(util.VN_CURDATE(), INTERVAL -4 MONTH)),
|
(1101, 9, 300, DATE_ADD(util.VN_CURDATE(), INTERVAL -4 MONTH)),
|
||||||
(9 , 1101, 9, 200, DATE_ADD(util.VN_CURDATE(), INTERVAL -3 MONTH)),
|
(1101, 9, 200, DATE_ADD(util.VN_CURDATE(), INTERVAL -3 MONTH)),
|
||||||
(10, 1101, 9, 100, DATE_ADD(util.VN_CURDATE(), INTERVAL -2 MONTH)),
|
(1101, 9, 100, DATE_ADD(util.VN_CURDATE(), INTERVAL -2 MONTH)),
|
||||||
(11, 1101, 9, 50 , DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH)),
|
(1101, 9, 50 , DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH)),
|
||||||
(12, 1102, 9, 800, util.VN_CURDATE()),
|
(1102, 9, 800, util.VN_CURDATE()),
|
||||||
(14, 1104, 9, 90 , util.VN_CURDATE()),
|
(1104, 9, 90 , util.VN_CURDATE()),
|
||||||
(15, 1105, 9, 90 , util.VN_CURDATE());
|
(1105, 9, 90 , util.VN_CURDATE());
|
||||||
|
|
||||||
INSERT INTO `vn`.`clientCreditLimit`(`id`, `maxAmount`, `roleFk`)
|
INSERT INTO `vn`.`clientCreditLimit`(`id`, `maxAmount`, `roleFk`)
|
||||||
VALUES
|
VALUES
|
||||||
|
|
|
@ -5,6 +5,9 @@
|
||||||
"AddressObservation": {
|
"AddressObservation": {
|
||||||
"dataSource": "vn"
|
"dataSource": "vn"
|
||||||
},
|
},
|
||||||
|
"AddressShortage": {
|
||||||
|
"dataSource": "vn"
|
||||||
|
},
|
||||||
"BankEntity": {
|
"BankEntity": {
|
||||||
"dataSource": "vn"
|
"dataSource": "vn"
|
||||||
},
|
},
|
||||||
|
|
|
@ -0,0 +1,22 @@
|
||||||
|
{
|
||||||
|
"name": "AddressShortage",
|
||||||
|
"base": "VnModel",
|
||||||
|
"options": {
|
||||||
|
"mysql": {
|
||||||
|
"table": "addressShortage"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"properties": {
|
||||||
|
"addressFk": {
|
||||||
|
"type": "number",
|
||||||
|
"id": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"relations": {
|
||||||
|
"address": {
|
||||||
|
"type": "belongsTo",
|
||||||
|
"model": "Address",
|
||||||
|
"foreignKey": "addressFk"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -17,6 +17,9 @@
|
||||||
},
|
},
|
||||||
"maxCreditRows": {
|
"maxCreditRows": {
|
||||||
"type": "number"
|
"type": "number"
|
||||||
|
},
|
||||||
|
"defaultCredit": {
|
||||||
|
"type": "number"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -483,12 +483,6 @@ module.exports = Self => {
|
||||||
if (userRequiredRoles <= 0)
|
if (userRequiredRoles <= 0)
|
||||||
throw new UserError(`You don't have enough privileges to set this credit amount`);
|
throw new UserError(`You don't have enough privileges to set this credit amount`);
|
||||||
}
|
}
|
||||||
|
|
||||||
await models.ClientCredit.create({
|
|
||||||
amount: changes.credit,
|
|
||||||
clientFk: finalState.id,
|
|
||||||
workerFk: userId
|
|
||||||
}, ctx.options);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
Self.changeCreditManagement = async function changeCreditManagement(ctx, finalState, changes) {
|
Self.changeCreditManagement = async function changeCreditManagement(ctx, finalState, changes) {
|
||||||
|
|
|
@ -62,13 +62,13 @@ describe('Client Model', () => {
|
||||||
const options = {transaction: tx};
|
const options = {transaction: tx};
|
||||||
const ctx = {options};
|
const ctx = {options};
|
||||||
|
|
||||||
// Set credit to zero by a financialBoss
|
|
||||||
const financialBoss = await models.VnUser.findOne({
|
const financialBoss = await models.VnUser.findOne({
|
||||||
where: {name: 'financialBoss'}
|
where: {name: 'financialBoss'}
|
||||||
}, options);
|
}, options);
|
||||||
ctx.options.accessToken = {userId: financialBoss.id};
|
ctx.options.accessToken = {userId: financialBoss.id};
|
||||||
|
|
||||||
await models.Client.changeCredit(ctx, instance, {credit: 0});
|
const testClient = await models.Client.findById(instance.id, options);
|
||||||
|
await testClient.updateAttributes({credit: 0}, ctx.options);
|
||||||
|
|
||||||
const salesAssistant = await models.VnUser.findOne({
|
const salesAssistant = await models.VnUser.findOne({
|
||||||
where: {name: 'salesAssistant'}
|
where: {name: 'salesAssistant'}
|
||||||
|
|
|
@ -212,7 +212,7 @@
|
||||||
<vn-td number shrink>{{::sale.quantity}}</vn-td>
|
<vn-td number shrink>{{::sale.quantity}}</vn-td>
|
||||||
<vn-td vn-fetched-tags>
|
<vn-td vn-fetched-tags>
|
||||||
<div>
|
<div>
|
||||||
<vn-one title="{{::sale.item.name}}">{{::sale.item.name}}</vn-one>
|
<vn-one title="{{::sale.concept}}">{{::sale.concept}}</vn-one>
|
||||||
<vn-one ng-if="::sale.item.subName">
|
<vn-one ng-if="::sale.item.subName">
|
||||||
<h3 title="{{::sale.item.subName}}">{{::sale.item.subName}}</h3>
|
<h3 title="{{::sale.item.subName}}">{{::sale.item.subName}}</h3>
|
||||||
</vn-one>
|
</vn-one>
|
||||||
|
|
|
@ -33,6 +33,16 @@
|
||||||
"type": "belongsTo",
|
"type": "belongsTo",
|
||||||
"model": "Sector",
|
"model": "Sector",
|
||||||
"foreignKey": "sectorFk"
|
"foreignKey": "sectorFk"
|
||||||
|
},
|
||||||
|
"train": {
|
||||||
|
"type": "belongsTo",
|
||||||
|
"model": "Train",
|
||||||
|
"foreignKey": "trainFk"
|
||||||
|
},
|
||||||
|
"printer": {
|
||||||
|
"type": "belongsTo",
|
||||||
|
"model": "Printer",
|
||||||
|
"foreignKey": "labelerFk"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{
|
{
|
||||||
"name": "salix-back",
|
"name": "salix-back",
|
||||||
"version": "23.46.01",
|
"version": "23.48.01",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "salix-back",
|
"name": "salix-back",
|
||||||
"version": "23.46.01",
|
"version": "23.48.01",
|
||||||
"license": "GPL-3.0",
|
"license": "GPL-3.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"axios": "^1.2.2",
|
"axios": "^1.2.2",
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "salix-back",
|
"name": "salix-back",
|
||||||
"version": "23.46.01",
|
"version": "23.48.01",
|
||||||
"author": "Verdnatura Levante SL",
|
"author": "Verdnatura Levante SL",
|
||||||
"description": "Salix backend",
|
"description": "Salix backend",
|
||||||
"license": "GPL-3.0",
|
"license": "GPL-3.0",
|
||||||
|
|
Loading…
Reference in New Issue